#[cfg(feature = "datagen")]
mod skeletons;
mod symbols;
use crate::provider::pattern;
use crate::size_test_macro::size_test;
use icu_provider::prelude::*;
#[cfg(feature = "datagen")]
pub use skeletons::*;
pub use symbols::*;
size_test!(DateLengthsV1, date_lengths_v1_size, 224);
#[doc = date_lengths_v1_size!()]
#[icu_provider::data_struct(
marker(BuddhistDateLengthsV1Marker, "datetime/buddhist/datelengths@1"),
marker(ChineseDateLengthsV1Marker, "datetime/chinese/datelengths@1"),
marker(CopticDateLengthsV1Marker, "datetime/coptic/datelengths@1"),
marker(DangiDateLengthsV1Marker, "datetime/dangi/datelengths@1"),
marker(EthiopianDateLengthsV1Marker, "datetime/ethiopic/datelengths@1"),
marker(GregorianDateLengthsV1Marker, "datetime/gregory/datelengths@1"),
marker(HebrewDateLengthsV1Marker, "datetime/hebrew/datelengths@1"),
marker(IndianDateLengthsV1Marker, "datetime/indian/datelengths@1"),
marker(IslamicDateLengthsV1Marker, "datetime/islamic/datelengths@1"),
marker(JapaneseDateLengthsV1Marker, "datetime/japanese/datelengths@1"),
marker(JapaneseExtendedDateLengthsV1Marker, "datetime/japanext/datelengths@1"),
marker(PersianDateLengthsV1Marker, "datetime/persian/datelengths@1"),
marker(RocDateLengthsV1Marker, "datetime/roc/datelengths@1")
)]
#[derive(Debug, PartialEq, Clone, Default)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct DateLengthsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub date: patterns::LengthPatternsV1<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub length_combinations: patterns::GenericLengthPatternsV1<'data>,
}
size_test!(TimeLengthsV1, time_lengths_v1_size, 264);
#[doc = time_lengths_v1_size!()]
#[icu_provider::data_struct(marker(TimeLengthsV1Marker, "datetime/timelengths@1",))]
#[derive(Debug, PartialEq, Clone, Default)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct TimeLengthsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub time_h11_h12: patterns::LengthPatternsV1<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub time_h23_h24: patterns::LengthPatternsV1<'data>,
pub preferred_hour_cycle: pattern::CoarseHourCycle,
}
pub mod patterns {
use super::*;
use crate::provider::pattern::runtime::{self, GenericPattern};
#[derive(Debug)]
pub enum FullLongMediumShort {
Full,
Long,
Medium,
Short,
}
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar::patterns))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct LengthPatternsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub full: runtime::Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub long: runtime::Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub medium: runtime::Pattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub short: runtime::Pattern<'data>,
}
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar::patterns))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct GenericLengthPatternsV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub full: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub long: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub medium: GenericPattern<'data>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub short: GenericPattern<'data>,
}
#[icu_provider::data_struct]
#[derive(Debug, PartialEq, Clone, Default)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct GenericPatternV1<'data>(
#[cfg_attr(feature = "serde", serde(borrow))] pub GenericPattern<'data>,
);
}