use crate::{
provider::{neo::*, time_zones::tz, *},
scaffold::*,
};
use icu_calendar::{
provider::{
CalendarChineseV1, CalendarDangiV1, CalendarHijriObservationalV1, CalendarHijriUmmalquraV1,
CalendarJapaneseExtendedV1, CalendarJapaneseModernV1,
},
types::{DayOfMonth, DayOfYearInfo, MonthInfo, Weekday, YearInfo},
Date, Iso,
};
use icu_decimal::provider::{DecimalDigitsV1, DecimalSymbolsV1};
use icu_provider::{marker::NeverMarker, prelude::*};
use icu_time::scaffold::IntoOption;
use icu_time::{
zone::{TimeZoneVariant, UtcOffset},
Hour, Minute, Nanosecond, Second, Time, TimeZone,
};
pub trait DateInputMarkers: UnstableSealed {
type YearInput: IntoOption<YearInfo>;
type MonthInput: IntoOption<MonthInfo>;
type DayOfMonthInput: IntoOption<DayOfMonth>;
type DayOfYearInput: IntoOption<DayOfYearInfo>;
type DayOfWeekInput: IntoOption<Weekday>;
}
pub trait TypedDateDataMarkers<C>: UnstableSealed {
type DateSkeletonPatternsV1: DataMarker<DataStruct = PackedPatterns<'static>>;
type YearNamesV1: DataMarker<DataStruct = YearNames<'static>>;
type MonthNamesV1: DataMarker<DataStruct = MonthNames<'static>>;
type WeekdayNamesV1: DataMarker<DataStruct = LinearNames<'static>>;
}
pub trait DateDataMarkers: UnstableSealed {
type Skel: CalMarkers<ErasedPackedPatterns>;
type Year: CalMarkers<YearNamesV1>;
type Month: CalMarkers<MonthNamesV1>;
type WeekdayNamesV1: DataMarker<DataStruct = LinearNames<'static>>;
}
pub trait TimeMarkers: UnstableSealed {
type HourInput: IntoOption<Hour>;
type MinuteInput: IntoOption<Minute>;
type SecondInput: IntoOption<Second>;
type NanosecondInput: IntoOption<Nanosecond>;
type TimeSkeletonPatternsV1: DataMarker<DataStruct = PackedPatterns<'static>>;
type DayPeriodNamesV1: DataMarker<DataStruct = LinearNames<'static>>;
}
pub trait ZoneMarkers: UnstableSealed {
type TimeZoneIdInput: IntoOption<TimeZone>;
type TimeZoneOffsetInput: IntoOption<UtcOffset>;
type TimeZoneVariantInput: IntoOption<TimeZoneVariant>;
type TimeZoneLocalTimeInput: IntoOption<(Date<Iso>, Time)>;
type EssentialsV1: DataMarker<DataStruct = tz::Essentials<'static>>;
type LocationsV1: DataMarker<DataStruct = tz::Locations<'static>>;
type LocationsRootV1: DataMarker<DataStruct = tz::Locations<'static>>;
type ExemplarCitiesV1: DataMarker<DataStruct = tz::ExemplarCities<'static>>;
type ExemplarCitiesRootV1: DataMarker<DataStruct = tz::ExemplarCities<'static>>;
type GenericLongV1: DataMarker<DataStruct = tz::MzGeneric<'static>>;
type GenericShortV1: DataMarker<DataStruct = tz::MzGeneric<'static>>;
type StandardLongV1: DataMarker<DataStruct = tz::MzGeneric<'static>>;
type SpecificLongV1: DataMarker<DataStruct = tz::MzSpecific<'static>>;
type SpecificShortV1: DataMarker<DataStruct = tz::MzSpecific<'static>>;
type MetazonePeriodV1: DataMarker<DataStruct = tz::MzPeriod<'static>>;
}
pub trait DateTimeMarkers: UnstableSealed + DateTimeNamesMarker {
type D;
type T;
type Z;
type GluePatternV1: DataMarker<DataStruct = GluePattern<'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>,
{
}
#[rustfmt::skip]
pub trait AllFixedCalendarPatternDataMarkers<C: CldrCalendar, FSet: DateTimeMarkers>:
DataProvider<<FSet::D as TypedDateDataMarkers<C>>::DateSkeletonPatternsV1>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1>
+ DataProvider<FSet::GluePatternV1>
where
FSet::D: TypedDateDataMarkers<C>,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
#[rustfmt::skip]
impl<T, C, FSet> AllFixedCalendarPatternDataMarkers<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>>::DateSkeletonPatternsV1>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1>
+ DataProvider<FSet::GluePatternV1>,
{
}
#[rustfmt::skip]
pub trait AllFixedCalendarFormattingDataMarkers<C: CldrCalendar, FSet: DateTimeMarkers>:
DataProvider<<FSet::D as TypedDateDataMarkers<C>>::YearNamesV1>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::MonthNamesV1>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::WeekdayNamesV1>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::StandardLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1>
+ AllFixedCalendarPatternDataMarkers<C, FSet>
where
FSet::D: TypedDateDataMarkers<C>,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
#[rustfmt::skip]
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>>::YearNamesV1>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::MonthNamesV1>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::DateSkeletonPatternsV1>
+ DataProvider<<FSet::D as TypedDateDataMarkers<C>>::WeekdayNamesV1>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1>
+ DataProvider<<FSet::T as TimeMarkers>::TimeSkeletonPatternsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::StandardLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1>
+ DataProvider<FSet::GluePatternV1>
+ AllFixedCalendarPatternDataMarkers<C, FSet>
{
}
#[rustfmt::skip]
pub trait AllAnyCalendarPatternDataMarkers<FSet: DateTimeMarkers>:
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>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriUmmAlQura>
+ 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::T as TimeMarkers>::TimeSkeletonPatternsV1>
+ DataProvider<FSet::GluePatternV1>
where
FSet::D: DateDataMarkers,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
#[rustfmt::skip]
impl<T, FSet> AllAnyCalendarPatternDataMarkers<FSet> for T
where
FSet: DateTimeMarkers,
FSet::D: DateDataMarkers,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
T: ?Sized
+ 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>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Skel as CalMarkers<ErasedPackedPatterns>>::HijriUmmAlQura>
+ 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::T as TimeMarkers>::TimeSkeletonPatternsV1>
+ DataProvider<FSet::GluePatternV1>
{
}
#[rustfmt::skip]
pub trait AllAnyCalendarFormattingDataMarkers<FSet: DateTimeMarkers>:
DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Roc>
+ DataProvider<<FSet::D as DateDataMarkers>::WeekdayNamesV1>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::StandardLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1>
+ AllAnyCalendarPatternDataMarkers<FSet>
where
FSet::D: DateDataMarkers,
FSet::T: TimeMarkers,
FSet::Z: ZoneMarkers,
{
}
#[rustfmt::skip]
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<YearNamesV1>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::HijriUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Year as CalMarkers<YearNamesV1>>::Roc>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Buddhist>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Chinese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Coptic>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Dangi>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Ethiopian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::EthiopianAmeteAlem>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Gregorian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Hebrew>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Indian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriCivil>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriObservational>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriTabular>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::HijriUmmAlQura>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Japanese>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::JapaneseExtended>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Persian>
+ DataProvider<<<FSet::D as DateDataMarkers>::Month as CalMarkers<MonthNamesV1>>::Roc>
+ DataProvider<<FSet::D as DateDataMarkers>::WeekdayNamesV1>
+ DataProvider<<FSet::T as TimeMarkers>::DayPeriodNamesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::EssentialsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::LocationsRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::ExemplarCitiesRootV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::GenericShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::StandardLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificLongV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::SpecificShortV1>
+ DataProvider<<FSet::Z as ZoneMarkers>::MetazonePeriodV1>
+ AllAnyCalendarPatternDataMarkers<FSet>
{
}
pub trait AllFixedCalendarExternalDataMarkers:
DataProvider<DecimalSymbolsV1> + DataProvider<DecimalDigitsV1>
{
}
impl<T> AllFixedCalendarExternalDataMarkers for T where
T: ?Sized + DataProvider<DecimalSymbolsV1> + DataProvider<DecimalDigitsV1>
{
}
pub trait AllAnyCalendarExternalDataMarkers:
DataProvider<CalendarChineseV1>
+ DataProvider<CalendarDangiV1>
+ DataProvider<CalendarHijriObservationalV1>
+ DataProvider<CalendarHijriUmmalquraV1>
+ DataProvider<CalendarJapaneseModernV1>
+ DataProvider<CalendarJapaneseExtendedV1>
+ DataProvider<DecimalSymbolsV1>
+ DataProvider<DecimalDigitsV1>
{
}
impl<T> AllAnyCalendarExternalDataMarkers for T where
T: ?Sized
+ DataProvider<CalendarChineseV1>
+ DataProvider<CalendarDangiV1>
+ DataProvider<CalendarHijriObservationalV1>
+ DataProvider<CalendarHijriUmmalquraV1>
+ DataProvider<CalendarJapaneseModernV1>
+ DataProvider<CalendarJapaneseExtendedV1>
+ DataProvider<DecimalSymbolsV1>
+ DataProvider<DecimalDigitsV1>
{
}
impl DateInputMarkers for () {
type YearInput = ();
type MonthInput = ();
type DayOfMonthInput = ();
type DayOfYearInput = ();
type DayOfWeekInput = ();
}
impl<C> TypedDateDataMarkers<C> for () {
type DateSkeletonPatternsV1 = NeverMarker<PackedPatterns<'static>>;
type YearNamesV1 = NeverMarker<YearNames<'static>>;
type MonthNamesV1 = NeverMarker<MonthNames<'static>>;
type WeekdayNamesV1 = NeverMarker<LinearNames<'static>>;
}
impl DateDataMarkers for () {
type Skel = NoDataCalMarkers;
type Year = NoDataCalMarkers;
type Month = NoDataCalMarkers;
type WeekdayNamesV1 = NeverMarker<LinearNames<'static>>;
}
impl TimeMarkers for () {
type HourInput = ();
type MinuteInput = ();
type SecondInput = ();
type NanosecondInput = ();
type TimeSkeletonPatternsV1 = NeverMarker<PackedPatterns<'static>>;
type DayPeriodNamesV1 = NeverMarker<LinearNames<'static>>;
}
impl ZoneMarkers for () {
type TimeZoneIdInput = ();
type TimeZoneOffsetInput = ();
type TimeZoneVariantInput = ();
type TimeZoneLocalTimeInput = ();
type EssentialsV1 = NeverMarker<tz::Essentials<'static>>;
type LocationsV1 = NeverMarker<tz::Locations<'static>>;
type LocationsRootV1 = NeverMarker<tz::Locations<'static>>;
type ExemplarCitiesV1 = NeverMarker<tz::ExemplarCities<'static>>;
type ExemplarCitiesRootV1 = NeverMarker<tz::ExemplarCities<'static>>;
type GenericLongV1 = NeverMarker<tz::MzGeneric<'static>>;
type GenericShortV1 = NeverMarker<tz::MzGeneric<'static>>;
type StandardLongV1 = NeverMarker<tz::MzGeneric<'static>>;
type SpecificLongV1 = NeverMarker<tz::MzSpecific<'static>>;
type SpecificShortV1 = NeverMarker<tz::MzSpecific<'static>>;
type MetazonePeriodV1 = NeverMarker<tz::MzPeriod<'static>>;
}
macro_rules! datetime_marker_helper {
(@years/typed, yes) => {
C::YearNamesV1
};
(@years/typed,) => {
NeverMarker<YearNames<'static>>
};
(@months/typed, yes) => {
C::MonthNamesV1
};
(@months/typed,) => {
NeverMarker<MonthNames<'static>>
};
(@dates/typed, yes) => {
C::SkeletaV1
};
(@dates/typed,) => {
NeverMarker<PackedPatterns<'static>>
};
(@calmarkers, yes) => {
FullDataCalMarkers
};
(@calmarkers,) => {
NoDataCalMarkers
};
(@weekdays, yes) => {
WeekdayNamesV1
};
(@weekdays,) => {
NeverMarker<LinearNames<'static>>
};
(@dayperiods, yes) => {
DayPeriodNamesV1
};
(@dayperiods,) => {
NeverMarker<LinearNames<'static>>
};
(@times, yes) => {
TimeNeoSkeletonPatternsV1
};
(@times,) => {
NeverMarker<ErasedPackedPatterns>
};
(@glue, yes) => {
GluePatternV1
};
(@glue,) => {
NeverMarker<GluePattern<'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) => {
Weekday
};
(@input/day_of_year, yes) => {
DayOfYearInfo
};
(@input/hour, yes) => {
Hour
};
(@input/minute, yes) => {
Minute
};
(@input/second, yes) => {
Second
};
(@input/Nanosecond, yes) => {
Nanosecond
};
(@input/timezone/id, yes) => {
TimeZone
};
(@input/timezone/offset, yes) => {
Option<UtcOffset>
};
(@input/timezone/variant, yes) => {
TimeZoneVariant
};
(@input/timezone/local_time, yes) => {
(Date<Iso>, Time)
};
(@input/timezone/$any:ident,) => {
()
};
(@input/$any:ident,) => {
()
};
(@data/zone/essentials, yes) => {
tz::EssentialsV1
};
(@data/zone/locations, yes) => {
tz::LocationsV1
};
(@data/zone/locations_root, yes) => {
tz::LocationsRootV1
};
(@data/zone/exemplars, yes) => {
tz::ExemplarCitiesV1
};
(@data/zone/exemplars_root, yes) => {
tz::ExemplarCitiesRootV1
};
(@data/zone/generic_long, yes) => {
tz::MzGenericLongV1
};
(@data/zone/generic_short, yes) => {
tz::MzGenericShortV1
};
(@data/zone/standard_long, yes) => {
tz::MzStandardLongV1
};
(@data/zone/specific_long, yes) => {
tz::MzSpecificLongV1
};
(@data/zone/specific_short, yes) => {
tz::MzSpecificShortV1
};
(@data/zone/metazone_periods, yes) => {
tz::MzPeriodV1
};
(@data/zone/essentials,) => {
NeverMarker<tz::Essentials<'static>>
};
(@data/zone/locations,) => {
NeverMarker<tz::Locations<'static>>
};
(@data/zone/locations_root,) => {
NeverMarker<tz::Locations<'static>>
};
(@data/zone/exemplars,) => {
NeverMarker<tz::ExemplarCities<'static>>
};
(@data/zone/exemplars_root,) => {
NeverMarker<tz::ExemplarCities<'static>>
};
(@data/zone/generic_long,) => {
NeverMarker<tz::MzGeneric<'static>>
};
(@data/zone/generic_short,) => {
NeverMarker<tz::MzGeneric<'static>>
};
(@data/zone/standard_long,) => {
NeverMarker<tz::MzGeneric<'static>>
};
(@data/zone/specific_long,) => {
NeverMarker<tz::MzSpecific<'static>>
};
(@data/zone/specific_short,) => {
NeverMarker<tz::MzSpecific<'static>>
};
(@data/zone/metazone_periods,) => {
NeverMarker<tz::MzPeriod<'static>>
};
(@names/year, yes) => {
YearNamesV1
};
(@names/month, yes) => {
MonthNamesV1
};
(@names/weekday, yes) => {
WeekdayNamesV1
};
(@names/dayperiod, yes) => {
DayPeriodNamesV1
};
(@names/zone/essentials, yes) => {
tz::EssentialsV1
};
(@names/zone/locations, yes) => {
tz::LocationsV1
};
(@names/zone/locations_root, yes) => {
tz::LocationsRootV1
};
(@names/zone/exemplars, yes) => {
tz::ExemplarCitiesV1
};
(@names/zone/exemplars_root, yes) => {
tz::ExemplarCitiesRootV1
};
(@names/zone/generic_long, yes) => {
tz::MzGenericLongV1
};
(@names/zone/generic_short, yes) => {
tz::MzGenericShortV1
};
(@names/zone/standard_long, yes) => {
tz::MzStandardLongV1
};
(@names/zone/specific_long, yes) => {
tz::MzSpecificLongV1
};
(@names/zone/specific_short, yes) => {
tz::MzSpecificShortV1
};
(@names/zone/metazone_periods, yes) => {
tz::MzPeriodV1
};
(@names/$any:ident,) => {
()
};
(@names/zone/$any:ident,) => {
()
};
() => {
unreachable!() };
}
pub(crate) use datetime_marker_helper;