icu_experimental/relativetime/
provider.rs
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
#[cfg(feature = "datagen")]
use core::fmt::Debug;
use icu_pattern::SinglePlaceholderPattern;
use icu_plurals::provider::PluralElementsPackedCow;
use icu_provider::prelude::*;
use zerovec::ZeroMap;
#[cfg(feature = "compiled_data")]
pub use crate::provider::Baked;
icu_provider::data_marker!(
LongSecondRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortSecondRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowSecondRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongMinuteRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortMinuteRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowMinuteRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongHourRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortHourRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowHourRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongDayRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortDayRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowDayRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongWeekRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortWeekRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowWeekRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongMonthRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortMonthRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowMonthRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongQuarterRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortQuarterRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowQuarterRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
LongYearRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
ShortYearRelativeV1,
RelativeTimePatternData<'static>,
);
icu_provider::data_marker!(
NarrowYearRelativeV1,
RelativeTimePatternData<'static>,
);
#[derive(Debug, Clone, PartialEq, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::relativetime::provider))]
#[yoke(prove_covariance_manually)]
pub struct RelativeTimePatternData<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub relatives: ZeroMap<'data, i8, str>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub past: PluralElementsPackedCow<'data, SinglePlaceholderPattern>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub future: PluralElementsPackedCow<'data, SinglePlaceholderPattern>,
}
icu_provider::data_struct!(RelativeTimePatternData<'_>, #[cfg(feature = "datagen")]);