use icu_pattern::DoublePlaceholderPattern;
use icu_provider::prelude::*;
use zerovec::VarZeroCow;
#[derive(Debug, PartialEq, Clone, 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_locale::provider::names))]
#[zerovec::make_varule(MenuNamePartsULE)]
#[zerovec::derive(Debug)]
#[zerovec::skip_derive(Ord)]
#[cfg_attr(feature = "serde", zerovec::derive(Deserialize))]
#[cfg_attr(feature = "datagen", zerovec::derive(Serialize))]
pub struct MenuNameParts<'data> {
pub core: VarZeroCow<'data, str>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub extension: VarZeroCow<'data, str>,
}
#[derive(Debug, PartialEq, Clone, 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_locale::provider::names))]
pub struct LocaleNamesEssentials<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub locale_pattern: VarZeroCow<'data, DoublePlaceholderPattern>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub locale_separator: VarZeroCow<'data, DoublePlaceholderPattern>,
}
icu_provider::data_struct!(LocaleNamesEssentials<'_>, #[cfg(feature = "datagen")]);
icu_provider::data_marker!(
LocaleNamesRegionMediumTinyV1,
"locale/names/region/medium/tiny/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_region",
);
icu_provider::data_marker!(
LocaleNamesRegionMediumLightV1,
"locale/names/region/medium/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_region",
);
icu_provider::data_marker!(
LocaleNamesRegionShortTinyV1,
"locale/names/region/short/tiny/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_region",
);
icu_provider::data_marker!(
LocaleNamesRegionShortLightV1,
"locale/names/region/short/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_region",
);
icu_provider::data_marker!(
LocaleNamesLanguageMediumTinyV1,
"locale/names/language/medium/tiny/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageMediumLightV1,
"locale/names/language/medium/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageMediumHeavyV1,
"locale/names/language/medium/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageShortLightV1,
"locale/names/language/short/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageShortHeavyV1,
"locale/names/language/short/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageLongLightV1,
"locale/names/language/long/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageLongHeavyV1,
"locale/names/language/long/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageMenuMediumLightV1,
"locale/names/language/menu/medium/light/v1",
VarZeroCow<'static, MenuNamePartsULE>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesLanguageMenuMediumHeavyV1,
"locale/names/language/menu/medium/heavy/v1",
VarZeroCow<'static, MenuNamePartsULE>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_language",
);
icu_provider::data_marker!(
LocaleNamesScriptMediumTinyV1,
"locale/names/script/medium/tiny/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_script",
);
icu_provider::data_marker!(
LocaleNamesScriptMediumLightV1,
"locale/names/script/medium/light/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_script",
);
icu_provider::data_marker!(
LocaleNamesScriptMediumHeavyV1,
"locale/names/script/medium/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_script",
);
icu_provider::data_marker!(
LocaleNamesScriptShortHeavyV1,
"locale/names/script/short/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_script",
);
icu_provider::data_marker!(
LocaleNamesVariantMediumHeavyV1,
"locale/names/variant/medium/heavy/v1",
VarZeroCow<'static, str>,
#[cfg(feature = "datagen")]
attributes_domain = "locale_names_variant",
);
icu_provider::data_marker!(
LocaleNamesEssentialsV1,
"locale/names/essentials/v1",
LocaleNamesEssentials<'static>
);