#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
use alloc::borrow::Cow;
use icu_provider::prelude::*;
icu_provider::data_marker!(
DigitalDurationDataV1,
DigitalDurationData<'static>,
);
#[derive(Debug, Clone, PartialEq, yoke::Yokeable, zerofrom::ZeroFrom)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::duration::provider))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct DigitalDurationData<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub separator: Cow<'data, str>,
pub hms_padding: HmsPadding,
pub hm_padding: HmPadding,
pub ms_padding: MsPadding,
}
icu_provider::data_struct!(DigitalDurationData<'_>, #[cfg(feature = "datagen")]);
#[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::duration::provider))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct HmsPadding {
pub h: u8,
pub m: u8,
pub s: u8,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::duration::provider))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct MsPadding {
pub m: u8,
pub s: u8,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::duration::provider))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct HmPadding {
pub h: u8,
pub m: u8,
}