Skip to content

Commit d77b22c

Browse files
authored
Add LocaleNamesRegionLongV1 data struct with data (#7662)
#3260
1 parent 8bce5f8 commit d77b22c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+43982
-2
lines changed

components/experimental/src/displaynames/provider.rs

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
//!
1010
//! Read more about data providers: [`icu_provider`]
1111
12-
use icu_provider::prelude::*;
12+
use icu_provider::prelude::{zerofrom::ZeroFrom, *};
1313
use potential_utf::PotentialUtf8;
1414
use tinystr::UnvalidatedTinyAsciiStr;
15-
use zerovec::ZeroMap;
15+
use zerovec::{VarZeroCow, ZeroMap};
1616

1717
// We use raw TinyAsciiStrs for map keys, as we then don't have to
1818
// validate them as subtags on deserialization. Map lookup can be
@@ -153,3 +153,38 @@ pub struct VariantDisplayNames<'data> {
153153
}
154154

155155
icu_provider::data_struct!(VariantDisplayNames<'_>, #[cfg(feature = "datagen")]);
156+
157+
#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
158+
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
159+
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
160+
#[cfg_attr(feature = "datagen", databake(path = icu_experimental::displaynames::provider))]
161+
/// [`SingleDisplayName`] provides the user-translated name for a part of a locale.
162+
pub struct SingleDisplayName<'data> {
163+
/// The translated name.
164+
#[cfg_attr(feature = "serde", serde(borrow))]
165+
pub name: VarZeroCow<'data, str>,
166+
}
167+
168+
impl<'a> ZeroFrom<'a, str> for SingleDisplayName<'a> {
169+
fn zero_from(name: &'a str) -> Self {
170+
SingleDisplayName {
171+
name: VarZeroCow::new_borrowed(name),
172+
}
173+
}
174+
}
175+
176+
icu_provider::data_struct!(
177+
SingleDisplayName<'_>,
178+
varule: str,
179+
#[cfg(feature = "datagen")]
180+
encode_as_varule: |v: &SingleDisplayName<'_>| &*v.name
181+
);
182+
183+
icu_provider::data_marker!(
184+
/// Data marker for collation tailorings.
185+
LocaleNamesRegionLongV1,
186+
"locale/names/region/long/v1",
187+
SingleDisplayName<'static>,
188+
#[cfg(feature = "datagen")]
189+
attributes_domain = "locale_names_region",
190+
);

components/experimental/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub mod provider {
8888
impl_region_display_names_v1!(Baked);
8989
impl_script_display_names_v1!(Baked);
9090
impl_variant_display_names_v1!(Baked);
91+
impl_locale_names_region_long_v1!(Baked);
9192
impl_percent_essentials_v1!(Baked);
9293
impl_person_names_format_v1!(Baked);
9394
impl_long_day_relative_v1!(Baked);
@@ -155,6 +156,7 @@ pub mod provider {
155156
super::displaynames::provider::RegionDisplayNamesV1::INFO,
156157
super::displaynames::provider::ScriptDisplayNamesV1::INFO,
157158
super::displaynames::provider::VariantDisplayNamesV1::INFO,
159+
super::displaynames::provider::LocaleNamesRegionLongV1::INFO,
158160
super::measure::provider::UnitIdsV1::INFO,
159161
super::personnames::provider::PersonNamesFormatV1::INFO,
160162
super::relativetime::provider::LongDayRelativeV1::INFO,

provider/data/experimental/data/locale_names_region_long_v1.rs.data

Lines changed: 70 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/data/experimental/data/mod.rs

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/data/experimental/fingerprints.csv

Lines changed: 43464 additions & 0 deletions
Large diffs are not rendered by default.

provider/data/experimental/stubdata/locale_names_region_long_v1.rs.data

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/data/experimental/stubdata/mod.rs

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/registry/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ macro_rules! registry(
303303
icu::experimental::displaynames::provider::LocaleDisplayNamesV1: LocaleDisplayNamesV1,
304304
icu::experimental::displaynames::provider::ScriptDisplayNamesV1: ScriptDisplayNamesV1,
305305
icu::experimental::displaynames::provider::VariantDisplayNamesV1: VariantDisplayNamesV1,
306+
icu::experimental::displaynames::provider::LocaleNamesRegionLongV1: LocaleNamesRegionLongV1,
306307
icu::experimental::measure::provider::UnitIdsV1: UnitIdsV1,
307308
icu::experimental::relativetime::provider::LongSecondRelativeV1: LongSecondRelativeV1,
308309
icu::experimental::relativetime::provider::ShortSecondRelativeV1: ShortSecondRelativeV1,

provider/source/data/debug/locale/names/region/long/v1/001/ar.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/source/data/debug/locale/names/region/long/v1/001/bn.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)