use crate::{
provider::{neo::*, time_zones::tz, *},
scaffold::*,
};
use icu_calendar::{
provider::{
ChineseCacheV1Marker, DangiCacheV1Marker, IslamicObservationalCacheV1Marker,
IslamicUmmAlQuraCacheV1Marker, JapaneseErasV1Marker, JapaneseExtendedErasV1Marker,
},
types::{
DayOfMonth, DayOfYearInfo, IsoHour, IsoMinute, IsoSecond, IsoWeekday, MonthInfo,
NanoSecond, YearInfo,
},
Date, Iso, Time,
};
use icu_decimal::provider::{DecimalDigitsV1Marker, DecimalSymbolsV2Marker};
use icu_provider::{marker::NeverMarker, prelude::*};
use icu_timezone::scaffold::IntoOption;
use icu_timezone::{TimeZoneBcp47Id, UtcOffset, ZoneVariant};
pub trait DateInputMarkers: UnstableSealed {
type YearInput: IntoOption<YearInfo>;
type MonthInput: IntoOption<MonthInfo>;
type DayOfMonthInput: IntoOption<DayOfMonth>;
type DayOfYearInput: IntoOption<DayOfYearInfo>;
type DayOfWeekInput: IntoOption<IsoWeekday>;
}
pub trait TypedDateDataMarkers<C>: UnstableSealed {
type DateSkeletonPatternsV1Marker: DataMarker<DataStruct = PackedPatternsV1<'static>>;
type YearNamesV1Marker: DataMarker<DataStruct = YearNamesV1<'static>>;
type MonthNamesV1Marker: DataMarker<DataStruct = MonthNamesV1<'static>>;
type WeekdayNamesV1Marker: DataMarker<DataStruct = LinearNamesV1<'static>>;
}
pub trait DateDataMarkers: UnstableSealed {
type Skel: CalMarkers<ErasedPackedPatterns>;
type Year: CalMarkers<YearNamesV1Marker>;
type Month: CalMarkers<MonthNamesV1Marker>;
type WeekdayNamesV1Marker: DataMarker<DataStruct = LinearNamesV1<'static>>;
}
pub trait TimeMarkers: UnstableSealed {
type HourInput: IntoOption<IsoHour>;
type MinuteInput: IntoOption<IsoMinute>;
type SecondInput: IntoOption<IsoSecond>;
type NanoSecondInput: IntoOption<NanoSecond>;
type TimeSkeletonPatternsV1Marker: DataMarker<DataStruct = PackedPatternsV1<'static>>;
type DayPeriodNamesV1Marker: DataMarker<DataStruct = LinearNamesV1<'static>>;
}
pub trait ZoneMarkers: UnstableSealed {
type TimeZoneIdInput: IntoOption<TimeZoneBcp47Id>;
type TimeZoneOffsetInput: IntoOption<UtcOffset>;
type TimeZoneVariantInput: IntoOption<ZoneVariant>;
type TimeZoneLocalTimeInput: IntoOption<(Date<Iso>, Time)>;
type EssentialsV1Marker: DataMarker<DataStruct = tz::EssentialsV1<'static>>;
type LocationsV1Marker: DataMarker<DataStruct = tz::LocationsV1<'static>>;
type GenericLongV1Marker: DataMarker<DataStruct = tz::MzGenericV1<'static>>;
type GenericShortV1Marker: DataMarker<DataStruct = tz::MzGenericV1<'static>>;
type SpecificLongV1Marker: DataMarker<DataStruct = tz::MzSpecificV1<'static>>;
type SpecificShortV1Marker: DataMarker<DataStruct = tz::MzSpecificV1<'static>>;
type MetazonePeriodV1Marker: DataMarker<DataStruct = tz::MzPeriodV1<'static>>;
}
pub trait DateTimeMarkers: UnstableSealed + DateTimeNamesMarker {
type D;
type T;
type Z;
type GluePatternV1Marker: DataMarker<DataStruct = GluePatternV1<'static>>;
}
pub trait AllInputMarkers<R: DateTimeMarkers>:
GetField<<R::D as DateInputMarkers>::YearInput>
+ GetField<<R::D as DateInputMarkers>::MonthInput>
+ GetField<<R::D as DateInputMarkers>::DayOfMonthInput>
+ GetField<<R::D as DateInputMarkers>::DayOfWeekInput>
+ GetField<<R::D as DateInputMarkers>::DayOfYearInput>
+ GetField<<R::T as TimeMarkers>::HourInput>
+ GetField<<R::T as TimeMarkers>::MinuteInput>
+ GetField<<R::T as TimeMarkers>::SecondInput>
+ GetField<<R::T as TimeMarkers>::NanoSecondInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneIdInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneOffsetInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneVariantInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneLocalTimeInput>
where
R::D: DateInputMarkers,
R::T: TimeMarkers,
R::Z: ZoneMarkers,
{
}
impl<T, R> AllInputMarkers<R> for T
where
R: DateTimeMarkers,
R::D: DateInputMarkers,
R::T: TimeMarkers,
R::Z: ZoneMarkers,
T: GetField<<R::D as DateInputMarkers>::YearInput>
+ GetField<<R::D as DateInputMarkers>::MonthInput>
+ GetField<<R::D as DateInputMarkers>::DayOfMonthInput>
+ GetField<<R::D as DateInputMarkers>::DayOfWeekInput>
+ GetField<<R::D as DateInputMarkers>::DayOfYearInput>
+ GetField<<R::T as TimeMarkers>::HourInput>
+ GetField<<R::T as TimeMarkers>::MinuteInput>
+ GetField<<R::T as TimeMarkers>::SecondInput>
+ GetField<<R::T as TimeMarkers>::NanoSecondInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneIdInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneOffsetInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneVariantInput>
+ GetField<<R::Z as ZoneMarkers>::TimeZoneLocalTimeInput>,
{
}
pub trait AllFixedCalendarFormattingDataMarkers<C: CldrCalendar, FSet: DateTimeMarkers>:
DataProvider<<FSet::D as TypedDateDataMarkers<C>>::YearNamesV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::MonthNamesV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::DateSkeletonPatternsV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::WeekdayNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1Marker>
+ DataProvider<FSet::GluePatternV1Marker>
where
FSet::D: TypedDateDataMarkers<C>,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
impl<T, C, FSet> AllFixedCalendarFormattingDataMarkers<C, FSet> for T
where
C: CldrCalendar,
FSet: DateTimeMarkers,
FSet::D: TypedDateDataMarkers<C>,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
T: ?Sized
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::YearNamesV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::MonthNamesV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::DateSkeletonPatternsV1Marker>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::WeekdayNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1Marker>
+ DataProvider<FSet::GluePatternV1Marker>,
{
}
pub trait AllAnyCalendarFormattingDataMarkers<FSet: DateTimeMarkers>:
DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Roc>
+ DataProvider<<FSet::D as DateDataMarkers>::WeekdayNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1Marker>
+ DataProvider<FSet::GluePatternV1Marker>
where
FSet::D: DateDataMarkers,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
impl<T, FSet> AllAnyCalendarFormattingDataMarkers<FSet> for T
where
FSet: DateTimeMarkers,
FSet::D: DateDataMarkers,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
T: ?Sized
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1Marker>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1Marker>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::IslamicUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::Roc>
+ DataProvider<<FSet::D as DateDataMarkers>::WeekdayNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1Marker>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1Marker>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1Marker>
+ DataProvider<FSet::GluePatternV1Marker>
{
}
pub trait AllFixedCalendarExternalDataMarkers:
DataProvider<DecimalSymbolsV2Marker> + DataProvider<DecimalDigitsV1Marker>
{
}
impl<T> AllFixedCalendarExternalDataMarkers for T where
T: ?Sized + DataProvider<DecimalSymbolsV2Marker> + DataProvider<DecimalDigitsV1Marker>
{
}
pub trait AllAnyCalendarExternalDataMarkers:
DataProvider<ChineseCacheV1Marker>
+ DataProvider<DangiCacheV1Marker>
+ DataProvider<IslamicObservationalCacheV1Marker>
+ DataProvider<IslamicUmmAlQuraCacheV1Marker>
+ DataProvider<JapaneseErasV1Marker>
+ DataProvider<JapaneseExtendedErasV1Marker>
+ DataProvider<DecimalSymbolsV2Marker>
+ DataProvider<DecimalDigitsV1Marker>
{
}
impl<T> AllAnyCalendarExternalDataMarkers for T where
T: ?Sized
+ DataProvider<ChineseCacheV1Marker>
+ DataProvider<DangiCacheV1Marker>
+ DataProvider<IslamicObservationalCacheV1Marker>
+ DataProvider<IslamicUmmAlQuraCacheV1Marker>
+ DataProvider<JapaneseErasV1Marker>
+ DataProvider<JapaneseExtendedErasV1Marker>
+ DataProvider<DecimalSymbolsV2Marker>
+ DataProvider<DecimalDigitsV1Marker>
{
}
impl DateInputMarkers for () {
type YearInput = ();
type MonthInput = ();
type DayOfMonthInput = ();
type DayOfYearInput = ();
type DayOfWeekInput = ();
}
impl<C> TypedDateDataMarkers<C> for () {
type DateSkeletonPatternsV1Marker = NeverMarker<PackedPatternsV1<'static>>;
type YearNamesV1Marker = NeverMarker<YearNamesV1<'static>>;
type MonthNamesV1Marker = NeverMarker<MonthNamesV1<'static>>;
type WeekdayNamesV1Marker = NeverMarker<LinearNamesV1<'static>>;
}
impl DateDataMarkers for () {
type Skel = NoDataCalMarkers;
type Year = NoDataCalMarkers;
type Month = NoDataCalMarkers;
type WeekdayNamesV1Marker = NeverMarker<LinearNamesV1<'static>>;
}
impl TimeMarkers for () {
type HourInput = ();
type MinuteInput = ();
type SecondInput = ();
type NanoSecondInput = ();
type TimeSkeletonPatternsV1Marker = NeverMarker<PackedPatternsV1<'static>>;
type DayPeriodNamesV1Marker = NeverMarker<LinearNamesV1<'static>>;
}
impl ZoneMarkers for () {
type TimeZoneIdInput = ();
type TimeZoneOffsetInput = ();
type TimeZoneVariantInput = ();
type TimeZoneLocalTimeInput = ();
type EssentialsV1Marker = NeverMarker<tz::EssentialsV1<'static>>;
type LocationsV1Marker = NeverMarker<tz::LocationsV1<'static>>;
type GenericLongV1Marker = NeverMarker<tz::MzGenericV1<'static>>;
type GenericShortV1Marker = NeverMarker<tz::MzGenericV1<'static>>;
type SpecificLongV1Marker = NeverMarker<tz::MzSpecificV1<'static>>;
type SpecificShortV1Marker = NeverMarker<tz::MzSpecificV1<'static>>;
type MetazonePeriodV1Marker = NeverMarker<tz::MzPeriodV1<'static>>;
}
macro_rules! datetime_marker_helper {
(@years/typed, yes) => {
C::YearNamesV1Marker
};
(@years/typed,) => {
NeverMarker<YearNamesV1<'static>>
};
(@months/typed, yes) => {
C::MonthNamesV1Marker
};
(@months/typed,) => {
NeverMarker<MonthNamesV1<'static>>
};
(@dates/typed, yes) => {
C::SkeletaV1Marker
};
(@dates/typed,) => {
NeverMarker<PackedPatternsV1<'static>>
};
(@calmarkers, yes) => {
FullDataCalMarkers
};
(@calmarkers,) => {
NoDataCalMarkers
};
(@weekdays, yes) => {
WeekdayNamesV1Marker
};
(@weekdays,) => {
NeverMarker<LinearNamesV1<'static>>
};
(@dayperiods, yes) => {
DayPeriodNamesV1Marker
};
(@dayperiods,) => {
NeverMarker<LinearNamesV1<'static>>
};
(@times, yes) => {
TimeNeoSkeletonPatternsV1Marker
};
(@times,) => {
NeverMarker<ErasedPackedPatterns>
};
(@glue, yes) => {
GluePatternV1Marker
};
(@glue,) => {
NeverMarker<GluePatternV1<'static>>
};
(@option/length, yes) => {
Length
};
(@option/length, long) => {
Length
};
(@option/length, medium) => {
Length
};
(@option/length, short) => {
Length
};
(@option/yearstyle, yes) => {
Option<YearStyle>
};
(@option/alignment, yes) => {
Option<Alignment>
};
(@option/timeprecision, yes) => {
Option<TimePrecision>
};
(@option/$any:ident,) => {
()
};
(@input/year, yes) => {
YearInfo
};
(@input/month, yes) => {
MonthInfo
};
(@input/day_of_month, yes) => {
DayOfMonth
};
(@input/day_of_week, yes) => {
IsoWeekday
};
(@input/day_of_year, yes) => {
DayOfYearInfo
};
(@input/hour, yes) => {
IsoHour
};
(@input/minute, yes) => {
IsoMinute
};
(@input/second, yes) => {
IsoSecond
};
(@input/nanosecond, yes) => {
NanoSecond
};
(@input/timezone/id, yes) => {
TimeZoneBcp47Id
};
(@input/timezone/offset, yes) => {
Option<UtcOffset>
};
(@input/timezone/variant, yes) => {
ZoneVariant
};
(@input/timezone/local_time, yes) => {
(Date<Iso>, Time)
};
(@input/timezone/$any:ident,) => {
()
};
(@input/$any:ident,) => {
()
};
(@data/zone/essentials, yes) => {
tz::EssentialsV1Marker
};
(@data/zone/locations, yes) => {
tz::LocationsV1Marker
};
(@data/zone/generic_long, yes) => {
tz::MzGenericLongV1Marker
};
(@data/zone/generic_short, yes) => {
tz::MzGenericShortV1Marker
};
(@data/zone/specific_long, yes) => {
tz::MzSpecificLongV1Marker
};
(@data/zone/specific_short, yes) => {
tz::MzSpecificShortV1Marker
};
(@data/zone/metazone_periods, yes) => {
tz::MzPeriodV1Marker
};
(@data/zone/essentials,) => {
NeverMarker<tz::EssentialsV1<'static>>
};
(@data/zone/locations,) => {
NeverMarker<tz::LocationsV1<'static>>
};
(@data/zone/generic_long,) => {
NeverMarker<tz::MzGenericV1<'static>>
};
(@data/zone/generic_short,) => {
NeverMarker<tz::MzGenericV1<'static>>
};
(@data/zone/specific_long,) => {
NeverMarker<tz::MzSpecificV1<'static>>
};
(@data/zone/specific_short,) => {
NeverMarker<tz::MzSpecificV1<'static>>
};
(@data/zone/metazone_periods,) => {
NeverMarker<tz::MzPeriodV1<'static>>
};
(@names/year, yes) => {
YearNamesV1Marker
};
(@names/month, yes) => {
MonthNamesV1Marker
};
(@names/weekday, yes) => {
WeekdayNamesV1Marker
};
(@names/dayperiod, yes) => {
DayPeriodNamesV1Marker
};
(@names/zone/essentials, yes) => {
tz::EssentialsV1Marker
};
(@names/zone/locations, yes) => {
tz::LocationsV1Marker
};
(@names/zone/generic_long, yes) => {
tz::MzGenericLongV1Marker
};
(@names/zone/generic_short, yes) => {
tz::MzGenericShortV1Marker
};
(@names/zone/specific_long, yes) => {
tz::MzSpecificLongV1Marker
};
(@names/zone/specific_short, yes) => {
tz::MzSpecificShortV1Marker
};
(@names/zone/metazone_periods, yes) => {
tz::MzPeriodV1Marker
};
(@names/$any:ident,) => {
()
};
(@names/zone/$any:ident,) => {
()
};
() => {
unreachable!() };
}
pub(crate) use datetime_marker_helper;