diff --git a/Cargo.lock b/Cargo.lock index d2c91267d60..1b02014d237 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1048,6 +1048,7 @@ dependencies = [ "icu_locale", "icu_locale_core", "icu_normalizer", + "icu_pattern", "icu_plurals", "icu_properties", "icu_provider", @@ -1208,6 +1209,7 @@ dependencies = [ "icu_benchmark_macros", "icu_decimal_data", "icu_locale_core", + "icu_pattern", "icu_provider", "icu_provider_adapters", "rand", diff --git a/components/datetime/src/any/date.rs b/components/datetime/src/any/date.rs index 814a63f7647..15ac9597b2b 100644 --- a/components/datetime/src/any/date.rs +++ b/components/datetime/src/any/date.rs @@ -19,7 +19,7 @@ use icu_provider::prelude::*; use icu_provider::DataLocale; use writeable::Writeable; -size_test!(DateFormatter, date_formatter_size, 4456); +size_test!(DateFormatter, date_formatter_size, 4408); /// [`DateFormatter`] is a formatter capable of formatting /// dates from any calendar, selected at runtime. For the difference between this and [`TypedDateFormatter`](crate::TypedDateFormatter), diff --git a/components/datetime/src/any/datetime.rs b/components/datetime/src/any/datetime.rs index 517e3c66509..076f164f1a9 100644 --- a/components/datetime/src/any/datetime.rs +++ b/components/datetime/src/any/datetime.rs @@ -24,7 +24,7 @@ use icu_provider::prelude::*; use icu_provider::DataLocale; use writeable::Writeable; -size_test!(DateTimeFormatter, date_time_formatter_size, 5208); +size_test!(DateTimeFormatter, date_time_formatter_size, 5160); /// [`DateTimeFormatter`] is a formatter capable of formatting /// date/times from any calendar, selected at runtime. For the difference between this and [`TypedDateTimeFormatter`](crate::TypedDateTimeFormatter), diff --git a/components/datetime/src/any/zoned_datetime.rs b/components/datetime/src/any/zoned_datetime.rs index d4351e0c6b8..804777f63b3 100644 --- a/components/datetime/src/any/zoned_datetime.rs +++ b/components/datetime/src/any/zoned_datetime.rs @@ -26,7 +26,7 @@ use icu_decimal::provider::DecimalSymbolsV1Marker; use icu_plurals::provider::OrdinalV1Marker; use writeable::Writeable; -size_test!(ZonedDateTimeFormatter, zoned_date_time_formatter_size, 6224); +size_test!(ZonedDateTimeFormatter, zoned_date_time_formatter_size, 6176); /// [`ZonedDateTimeFormatter`] is a formatter capable of formatting /// date/times with time zones from any calendar, selected at runtime. For the difference between this and [`TypedZonedDateTimeFormatter`](crate::TypedZonedDateTimeFormatter), diff --git a/components/datetime/src/datetime.rs b/components/datetime/src/datetime.rs index ca723e7a717..bca268673aa 100644 --- a/components/datetime/src/datetime.rs +++ b/components/datetime/src/datetime.rs @@ -29,7 +29,7 @@ use crate::{ DateTimeError, FormattedDateTime, }; -size_test!(TimeFormatter, time_formatter_size, 1200); +size_test!(TimeFormatter, time_formatter_size, 1152); /// [`TimeFormatter`] is a structure of the [`icu::datetime`] component that provides time formatting only. /// When constructed, it uses data from the [data provider], selected locale and provided preferences to @@ -186,7 +186,7 @@ impl TimeFormatter { size_test!( TypedDateFormatter, typed_date_formatter_size, - 4400 + 4352 ); /// [`TypedDateFormatter`] is a formatter capable of formatting @@ -402,7 +402,7 @@ impl TypedDateFormatter { size_test!( TypedDateTimeFormatter, typed_date_time_formatter_size, - 5152 + 5104 ); /// [`TypedDateTimeFormatter`] is a formatter capable of formatting diff --git a/components/datetime/src/format/neo.rs b/components/datetime/src/format/neo.rs index 855c741d835..4ed9b28e51a 100644 --- a/components/datetime/src/format/neo.rs +++ b/components/datetime/src/format/neo.rs @@ -265,7 +265,7 @@ where size_test!( TypedDateTimeNames, typed_date_time_names_size, - 464 + 416 ); /// A low-level type that formats datetime patterns with localized symbols. diff --git a/components/datetime/src/neo.rs b/components/datetime/src/neo.rs index 57d4c9692ad..21dd2472203 100644 --- a/components/datetime/src/neo.rs +++ b/components/datetime/src/neo.rs @@ -205,7 +205,7 @@ where } } -size_test!(TypedNeoFormatter, typed_neo_year_month_day_formatter_size, 504); +size_test!(TypedNeoFormatter, typed_neo_year_month_day_formatter_size, 456); /// [`TypedNeoFormatter`] is a formatter capable of formatting dates and/or times from /// a calendar selected at compile time. @@ -648,7 +648,7 @@ where size_test!( NeoFormatter, neo_year_month_day_formatter_size, - 560 + 512 ); /// [`NeoFormatter`] is a formatter capable of formatting dates and/or times from diff --git a/components/decimal/Cargo.toml b/components/decimal/Cargo.toml index dc00a91aec7..6e834433fad 100644 --- a/components/decimal/Cargo.toml +++ b/components/decimal/Cargo.toml @@ -23,6 +23,7 @@ all-features = true displaydoc = { workspace = true } fixed_decimal = { workspace = true } icu_provider = { workspace = true, features = ["macros"] } +icu_pattern = { workspace = true, features = ["zerofrom"]} writeable = { workspace = true } databake = { workspace = true, features = ["derive"], optional = true} @@ -46,8 +47,8 @@ criterion = { workspace = true } [features] default = ["compiled_data"] std = ["fixed_decimal/std", "icu_locale_core/std", "icu_provider/std"] -serde = ["dep:serde", "icu_provider/serde"] -datagen = ["serde", "dep:databake"] +serde = ["dep:serde", "icu_provider/serde", "icu_pattern/serde"] +datagen = ["serde", "dep:databake", "icu_pattern/databake"] bench = ["serde"] compiled_data = ["dep:icu_decimal_data"] diff --git a/components/decimal/src/format.rs b/components/decimal/src/format.rs index e03b4fe2f5e..8d5972806a8 100644 --- a/components/decimal/src/format.rs +++ b/components/decimal/src/format.rs @@ -7,8 +7,10 @@ use crate::grouper; use crate::options::*; use crate::provider::*; +use alloc::borrow::Cow; use fixed_decimal::FixedDecimal; use fixed_decimal::Sign; +use icu_pattern::SinglePlaceholderPattern; use writeable::Writeable; /// An intermediate structure returned by [`FixedDecimalFormatter`](crate::FixedDecimalFormatter). @@ -21,11 +23,21 @@ pub struct FormattedFixedDecimal<'l> { } impl<'l> FormattedFixedDecimal<'l> { - fn get_affixes(&self) -> Option<&AffixesV1> { + fn get_pattern(&self) -> Option<&SinglePlaceholderPattern>> { match self.value.sign() { Sign::None => None, - Sign::Negative => Some(&self.symbols.minus_sign_affixes), - Sign::Positive => Some(&self.symbols.plus_sign_affixes), + Sign::Negative => Some( + self.symbols + .minus_sign_pattern + .as_ref() + .unwrap_or(&NEGATIVE_DEFAULT), + ), + Sign::Positive => Some( + self.symbols + .plus_sign_pattern + .as_ref() + .unwrap_or(&POSITIVE_DEFAULT), + ), } } } @@ -35,9 +47,9 @@ impl<'l> Writeable for FormattedFixedDecimal<'l> { where W: core::fmt::Write + ?Sized, { - let affixes = self.get_affixes(); - if let Some(affixes) = affixes { - sink.write_str(&affixes.prefix)?; + let pattern = self.get_pattern(); + if let Some(pattern) = pattern { + sink.write_str(pattern.prefix())?; } let range = self.value.magnitude_range(); let upper_magnitude = *range.end(); @@ -56,8 +68,8 @@ impl<'l> Writeable for FormattedFixedDecimal<'l> { sink.write_str(&self.symbols.grouping_separator)?; } } - if let Some(affixes) = affixes { - sink.write_str(&affixes.suffix)?; + if let Some(pattern) = pattern { + sink.write_str(pattern.suffix())?; } Ok(()) } diff --git a/components/decimal/src/provider.rs b/components/decimal/src/provider.rs index db3b1b0bec4..d7e4c92b29e 100644 --- a/components/decimal/src/provider.rs +++ b/components/decimal/src/provider.rs @@ -17,6 +17,7 @@ #![allow(clippy::exhaustive_enums)] use alloc::borrow::Cow; +use icu_pattern::SinglePlaceholderPattern; use icu_provider::prelude::*; #[cfg(feature = "compiled_data")] @@ -46,30 +47,6 @@ const _: () = { /// The latest minimum set of markers required by this component. pub const MARKERS: &[DataMarkerInfo] = &[DecimalSymbolsV1Marker::INFO]; -/// A collection of strings to affix to a decimal number. -/// -///
-/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways, -/// including in SemVer minor releases. While the serde representation of data structs is guaranteed -/// to be stable, their Rust representation might not be. Use with caution. -///
-#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)] -#[cfg_attr( - feature = "datagen", - derive(serde::Serialize, databake::Bake), - databake(path = icu_decimal::provider), -)] -#[cfg_attr(feature = "serde", derive(serde::Deserialize))] -pub struct AffixesV1<'data> { - /// String to prepend before the decimal number. - #[cfg_attr(feature = "serde", serde(borrow))] - pub prefix: Cow<'data, str>, - - /// String to append after the decimal number. - #[cfg_attr(feature = "serde", serde(borrow))] - pub suffix: Cow<'data, str>, -} - /// A collection of settings expressing where to put grouping separators in a decimal number. /// For example, `1,000,000` has two grouping separators, positioned along every 3 digits. /// @@ -117,13 +94,13 @@ pub struct GroupingSizesV1 { )] #[cfg_attr(feature = "serde", derive(serde::Deserialize))] pub struct DecimalSymbolsV1<'data> { - /// Prefix and suffix to apply when a negative sign is needed. + /// Pattern to apply when a negative sign is needed. #[cfg_attr(feature = "serde", serde(borrow))] - pub minus_sign_affixes: AffixesV1<'data>, + pub minus_sign_pattern: Option>>, - /// Prefix and suffix to apply when a plus sign is needed. + /// Pattern to apply when a plus sign is needed. #[cfg_attr(feature = "serde", serde(borrow))] - pub plus_sign_affixes: AffixesV1<'data>, + pub plus_sign_pattern: Option>>, /// Character used to separate the integer and fraction parts of the number. #[cfg_attr(feature = "serde", serde(borrow))] @@ -141,17 +118,18 @@ pub struct DecimalSymbolsV1<'data> { pub digits: [char; 10], } +/// The value used if [`DecimalSymbolsV1::minus_sign_pattern`] is empty. +pub static NEGATIVE_DEFAULT: SinglePlaceholderPattern> = + SinglePlaceholderPattern::from_store_unchecked(Cow::Borrowed("\x02-")); +/// The value used if [`DecimalSymbolsV1::plus_sign_pattern`] is empty. +pub static POSITIVE_DEFAULT: SinglePlaceholderPattern> = + SinglePlaceholderPattern::from_store_unchecked(Cow::Borrowed("\x02+")); + impl Default for DecimalSymbolsV1<'static> { fn default() -> Self { Self { - minus_sign_affixes: AffixesV1 { - prefix: Cow::Borrowed("-"), - suffix: Cow::Borrowed(""), - }, - plus_sign_affixes: AffixesV1 { - prefix: Cow::Borrowed("+"), - suffix: Cow::Borrowed(""), - }, + minus_sign_pattern: None, + plus_sign_pattern: None, decimal_separator: ".".into(), grouping_separator: ",".into(), grouping_sizes: GroupingSizesV1 { diff --git a/ffi/capi/Cargo.toml b/ffi/capi/Cargo.toml index 5d45da3b814..8171aeaa197 100644 --- a/ffi/capi/Cargo.toml +++ b/ffi/capi/Cargo.toml @@ -82,7 +82,7 @@ casemap = ["dep:icu_casemap"] collator = ["dep:icu_collator"] # collections = ["dep:icu_collections"] # Not useful on its own: use properties datetime = ["dep:icu_datetime", "dep:icu_calendar", "dep:icu_timezone", "dep:icu_decimal", "dep:icu_plurals"] -decimal = ["dep:icu_decimal", "dep:fixed_decimal"] +decimal = ["dep:icu_decimal", "dep:fixed_decimal", "dep:icu_pattern"] experimental = ["dep:icu_experimental"] list = ["dep:icu_list"] locale = ["dep:icu_locale"] @@ -144,6 +144,7 @@ icu_properties = { workspace = true, features = ["bidi"], optional = true } icu_segmenter = { workspace = true, features = ["auto"], optional = true } icu_timezone = { workspace = true, optional = true } icu_experimental = { workspace = true, optional = true } +icu_pattern = { workspace = true, features = ["alloc"], optional = true } # Optional ICU4X features (not components) icu_provider_blob = { workspace = true, optional = true } diff --git a/ffi/capi/src/decimal.rs b/ffi/capi/src/decimal.rs index a8dfb863df8..0a17055fd66 100644 --- a/ffi/capi/src/decimal.rs +++ b/ffi/capi/src/decimal.rs @@ -7,6 +7,7 @@ #[diplomat::attr(auto, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; + use icu_pattern::SinglePlaceholderPattern; use crate::{ errors::ffi::DataError, fixed_decimal::ffi::FixedDecimal, locale_core::ffi::Locale, @@ -88,7 +89,7 @@ pub mod ffi { } use icu_decimal::provider::{ - AffixesV1, DecimalSymbolsV1, DecimalSymbolsV1Marker, GroupingSizesV1, + DecimalSymbolsV1, DecimalSymbolsV1Marker, GroupingSizesV1, }; let mut new_digits = ['\0'; 10]; for (old, new) in digits @@ -100,13 +101,27 @@ pub mod ffi { *new = char::from_u32(old).unwrap_or(char::REPLACEMENT_CHARACTER); } let digits = new_digits; - let plus_sign_affixes = AffixesV1 { - prefix: str_to_cow(plus_sign_prefix), - suffix: str_to_cow(plus_sign_suffix), + let plus_sign_pattern = if plus_sign_prefix != b"+" || plus_sign_suffix != b"" { + Some(SinglePlaceholderPattern::from_store_unchecked(Cow::Owned( + SinglePlaceholderPattern::encode_store( + core::str::from_utf8(plus_sign_prefix).unwrap_or_default(), + core::str::from_utf8(plus_sign_suffix).unwrap_or_default(), + ) + .into_string(), + ))) + } else { + None }; - let minus_sign_affixes = AffixesV1 { - prefix: str_to_cow(minus_sign_prefix), - suffix: str_to_cow(minus_sign_suffix), + let minus_sign_pattern = if minus_sign_prefix != b"-" || minus_sign_suffix != b"" { + Some(SinglePlaceholderPattern::from_store_unchecked(Cow::Owned( + SinglePlaceholderPattern::encode_store( + core::str::from_utf8(minus_sign_prefix).unwrap_or_default(), + core::str::from_utf8(minus_sign_suffix).unwrap_or_default(), + ) + .into_string(), + ))) + } else { + None }; let grouping_sizes = GroupingSizesV1 { primary: primary_group_size, @@ -133,8 +148,8 @@ pub mod ffi { >( icu_provider::DataPayload::::from_owned( DecimalSymbolsV1 { - plus_sign_affixes, - minus_sign_affixes, + plus_sign_pattern, + minus_sign_pattern, decimal_separator: str_to_cow(decimal_separator), grouping_separator: str_to_cow(grouping_separator), grouping_sizes, diff --git a/provider/data/decimal/data/decimal_symbols_v1_marker.rs.data b/provider/data/decimal/data/decimal_symbols_v1_marker.rs.data index d3320a87469..6612c09b686 100644 --- a/provider/data/decimal/data/decimal_symbols_v1_marker.rs.data +++ b/provider/data/decimal/data/decimal_symbols_v1_marker.rs.data @@ -5,7 +5,7 @@ /// /// Using this implementation will embed the following data in the binary's data segment: /// * 1141B for the lookup data structure (214 data identifiers) -/// * 8905B[^1] for the actual data (45 unique structs) +/// * 6691B[^1] for the actual data (45 unique structs) /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] @@ -16,7 +16,7 @@ macro_rules! __impl_decimal_symbols_v1_marker { const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.70"] impl $provider { - const DATA_DECIMAL_SYMBOLS_V1_MARKER: icu_provider_baked::zerotrie::Data = icu_provider_baked::zerotrie::Data { trie: icu_provider_baked::zerotrie::ZeroTrieSimpleAscii { store: b"\xE1zabcdefghijklmnopqrstuvwxyz\0\0\0\0\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03m\xA7\xB0\xD07kx\x92\xA5\xAE\x141q\x92\x9F\xC7\xCC\xE4+v\xAC\xB8\xBA\xC9\xEB\xC4frsz\x01Yd\x80\x81\xC2\x1E-\x05latn\x82\xC6ADELMT\x08\x10\x18):E\x82\x1Earab\x81Z\x83\x1Earab\x81H\x82\x1Earab\x81\xC2BY\x06\x1Elatn\x83\x83\x1Earab\x81\xC2AR\x07\x83\x1Earab\x81\x1Elatn\x83N\x83\x1Earab\x81\x84\xC2\x1Et\x05latn\x88\x85\x85\xC7eghlnrs\x01\n\x12\x14\x1B%\x86\x86c\x87\x1Elatn\x8Bo\x87\x1Elatn\x8Bo\x80\x84\x1Elatn\x88\x80x\x88\x1Edeva\x90\x05\x85-Cyrl\x85\xC3asv\x01\x02\x85\x80\x80\xC4aeos\x01\x0F\x16\x85\x85-\xC3ACL\x02\x04T\x80H\x89I\x89i\x1Edeva\x87b\x85\xC6lnostu\x01./YZ\x85-\xC8ABCDFINS\x02\x04\x06\x0C\x0E\x14\x16T\x85E\x85H\x89\xC2EK\x01\x85\x85I\x80\xC2DN\x01\x85\x88L\x85\xC2EI\x01\x80\x85\x80\x8A-\xC84ABCEPUV\x03\x05\x07\x10\x12\x14\x1619\x8BR\x85O\x85\xC3LOR\x01\x02\x85\x85\x80C\x85Y\x85Y\x85E\x85\x8C\x8D\xC6afiory\x08\x15\x17\x18'\x8E\x1Elatn\x90\x12-Adlm\x8F\x1Elatn\x90\x13\x90\0\x8D\x90\x01-\xC3CLM\x02\x04A\x80U\x85A\x85\x85\xC2lu\x01\x85\x88\x1Egujr\x90\x0B\xC6eirsuy\x01\t\n\x0C\r\x82\x88\x1Edeva\x90\x05\x8Db\x85\x86\x80\xC5adest\x01\x02\x03\x04\x8A\x85\x80\x85\x85-CH\x89v\x85\x1Ejava\x90\x0E\xCBaegkmnosuxy\x01\x03\x05\x06\r\x14\x1B$%O\x86a\x80p\x85\x80\x1Ekhmr\x90\x0F\x1Eknda\x90\x10k\x1Edeva\x87\x90\x02\x1Elatn\x90\x14\x85v\x88-\xC3DOT\x0B\x16eva\x88\x1Edeva\x90\x05rya\x88\x1Eorya\x90\x17elu\x88\x1Etelu\x90\x1A\x80\xC6bimotv\x01\x03\x06\x0E\x10\x85j\x85o\x90\x03\x85\x1Elaoo\x90\x11\x90\0\x86\xC7aklnrsy\x07\x08\x10\x19!*i\x1Edeva\x87\x85\x88\x1Emlym\x90\x16i\x90\x04\x1Elatn\x8B\x90\x05\x1Elatn\x88-\xC2BI\x02N\x85D\x85\x90\x06\x1Elatn\x8B\xC5deloq\x02\n\x0B\rs\x85\x90\x05\x1Elatn\x88\x85\x90\0o\x90\x07\x1Elatn\x90\x14\xC2cr\x01\x80\x88\x1Eorya\x90\x17\xC5alrst\x08\t\x0B\x14\x88\x1Eguru\x90\x0C\x86g\x80\x90\x02\x1Elatn\x90\x15\x85-\xC2AP\x02O\x80T\x86u-BO\x85\xC4amou\x08\n\x0Bj\x87\x1Elatn\x8B\x90\x08\x85\x80-UA\x86\xCBacdklqruvwz\x16\x17\x1E\x1F !()+/\x90\x05\xC3\x1Eht\x05\x06latn\x88\x80\x90\t\x1Elatn\x8B\x85\x81\x1Elatn\x8B\x80\x8D\x86\x85-Latn\x85\x85\x90\0-CD\x85l\x80\xC7aeghkrt*23:;<\x88\xC2\x1E-\ttamldec\x90\x18\xC2MS\x0CY\x8B\x1Etamldec\x90\x19G\x8B\x1Etamldec\x90\x19\x88\x1Etelu\x90\x1B\x80\x1Ethai\x90\x1C\x80\x85\x80\xC5gknrz\n\x0B\r%\x1Earabext\x90\x02\x80d\x8B\x82\xC2\x1E-\tarabext\x90\x02IN\x90\x02\x1Elatn\x82\x80-Cyrl\x80\xC3eim\x03\x04c\x90\x01\x85w\x85o\x85\xC2hn\x02\x90\nr\x88\x1Edeva\x90\x05\xC2ru\x02l\x85e\xC2\x1E-\thanidec\x90\rHans\x1Ehanidec\x90\rh\xC2\x1E-\thanidec\x90\rHant\x1Ehanidec\x90\r" }, values: &[icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{61c}-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{61c}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("⹁"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['𞥐', '𞥑', '𞥒', '𞥓', '𞥔', '𞥕', '𞥖', '𞥗', '𞥘', '𞥙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{202f}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}-\u{200e}"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+\u{200e}"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['၀', '၁', '၂', '၃', '၄', '၅', '၆', '၇', '၈', '၉'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("،"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['߀', '߁', '߂', '߃', '߄', '߅', '߆', '߇', '߈', '߉'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['᱐', '᱑', '᱒', '᱓', '᱔', '᱕', '᱖', '᱗', '᱘', '᱙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['૦', '૧', '૨', '૩', '૪', '૫', '૬', '૭', '૮', '૯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['꧐', '꧑', '꧒', '꧓', '꧔', '꧕', '꧖', '꧗', '꧘', '꧙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['០', '១', '២', '៣', '៤', '៥', '៦', '៧', '៨', '៩'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['೦', '೧', '೨', '೩', '೪', '೫', '೬', '೭', '೮', '೯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['໐', '໑', '໒', '໓', '໔', '໕', '໖', '໗', '໘', '໙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("⹁"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("،"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}−"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("\u{200e}+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['൦', '൧', '൨', '൩', '൪', '൫', '൬', '൭', '൮', '൯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("-"), suffix: alloc::borrow::Cow::Borrowed("") }, plus_sign_affixes: icu::decimal::provider::AffixesV1 { prefix: alloc::borrow::Cow::Borrowed("+"), suffix: alloc::borrow::Cow::Borrowed("") }, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙'] }] }; + const DATA_DECIMAL_SYMBOLS_V1_MARKER: icu_provider_baked::zerotrie::Data = icu_provider_baked::zerotrie::Data { trie: icu_provider_baked::zerotrie::ZeroTrieSimpleAscii { store: b"\xE1zabcdefghijklmnopqrstuvwxyz\0\0\0\0\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03m\xA7\xB0\xD07kx\x92\xA5\xAE\x141q\x92\x9F\xC7\xCC\xE4+v\xAC\xB8\xBA\xC9\xEB\xC4frsz\x01Yd\x80\x81\xC2\x1E-\x05latn\x82\xC6ADELMT\x08\x10\x18):E\x82\x1Earab\x81Z\x83\x1Earab\x81H\x82\x1Earab\x81\xC2BY\x06\x1Elatn\x83\x83\x1Earab\x81\xC2AR\x07\x83\x1Earab\x81\x1Elatn\x83N\x83\x1Earab\x81\x84\xC2\x1Et\x05latn\x88\x85\x85\xC7eghlnrs\x01\n\x12\x14\x1B%\x86\x86c\x87\x1Elatn\x8Bo\x87\x1Elatn\x8Bo\x80\x84\x1Elatn\x88\x80x\x88\x1Edeva\x90\x05\x85-Cyrl\x85\xC3asv\x01\x02\x85\x80\x80\xC4aeos\x01\x0F\x16\x85\x85-\xC3ACL\x02\x04T\x80H\x89I\x89i\x1Edeva\x87b\x85\xC6lnostu\x01./YZ\x85-\xC8ABCDFINS\x02\x04\x06\x0C\x0E\x14\x16T\x85E\x85H\x89\xC2EK\x01\x85\x85I\x80\xC2DN\x01\x85\x88L\x85\xC2EI\x01\x80\x85\x80\x8A-\xC84ABCEPUV\x03\x05\x07\x10\x12\x14\x1619\x8BR\x85O\x85\xC3LOR\x01\x02\x85\x85\x80C\x85Y\x85Y\x85E\x85\x8C\x8D\xC6afiory\x08\x15\x17\x18'\x8E\x1Elatn\x90\x12-Adlm\x8F\x1Elatn\x90\x13\x90\0\x8D\x90\x01-\xC3CLM\x02\x04A\x80U\x85A\x85\x85\xC2lu\x01\x85\x88\x1Egujr\x90\x0B\xC6eirsuy\x01\t\n\x0C\r\x82\x88\x1Edeva\x90\x05\x8Db\x85\x86\x80\xC5adest\x01\x02\x03\x04\x8A\x85\x80\x85\x85-CH\x89v\x85\x1Ejava\x90\x0E\xCBaegkmnosuxy\x01\x03\x05\x06\r\x14\x1B$%O\x86a\x80p\x85\x80\x1Ekhmr\x90\x0F\x1Eknda\x90\x10k\x1Edeva\x87\x90\x02\x1Elatn\x90\x14\x85v\x88-\xC3DOT\x0B\x16eva\x88\x1Edeva\x90\x05rya\x88\x1Eorya\x90\x17elu\x88\x1Etelu\x90\x1A\x80\xC6bimotv\x01\x03\x06\x0E\x10\x85j\x85o\x90\x03\x85\x1Elaoo\x90\x11\x90\0\x86\xC7aklnrsy\x07\x08\x10\x19!*i\x1Edeva\x87\x85\x88\x1Emlym\x90\x16i\x90\x04\x1Elatn\x8B\x90\x05\x1Elatn\x88-\xC2BI\x02N\x85D\x85\x90\x06\x1Elatn\x8B\xC5deloq\x02\n\x0B\rs\x85\x90\x05\x1Elatn\x88\x85\x90\0o\x90\x07\x1Elatn\x90\x14\xC2cr\x01\x80\x88\x1Eorya\x90\x17\xC5alrst\x08\t\x0B\x14\x88\x1Eguru\x90\x0C\x86g\x80\x90\x02\x1Elatn\x90\x15\x85-\xC2AP\x02O\x80T\x86u-BO\x85\xC4amou\x08\n\x0Bj\x87\x1Elatn\x8B\x90\x08\x85\x80-UA\x86\xCBacdklqruvwz\x16\x17\x1E\x1F !()+/\x90\x05\xC3\x1Eht\x05\x06latn\x88\x80\x90\t\x1Elatn\x8B\x85\x81\x1Elatn\x8B\x80\x8D\x86\x85-Latn\x85\x85\x90\0-CD\x85l\x80\xC7aeghkrt*23:;<\x88\xC2\x1E-\ttamldec\x90\x18\xC2MS\x0CY\x8B\x1Etamldec\x90\x19G\x8B\x1Etamldec\x90\x19\x88\x1Etelu\x90\x1B\x80\x1Ethai\x90\x1C\x80\x85\x80\xC5gknrz\n\x0B\r%\x1Earabext\x90\x02\x80d\x8B\x82\xC2\x1E-\tarabext\x90\x02IN\x90\x02\x1Elatn\x82\x80-Cyrl\x80\xC3eim\x03\x04c\x90\x01\x85w\x85o\x85\xC2hn\x02\x90\nr\x88\x1Edeva\x90\x05\xC2ru\x02l\x85e\xC2\x1E-\thanidec\x90\rHans\x1Ehanidec\x90\rh\xC2\x1E-\thanidec\x90\rHant\x1Ehanidec\x90\r" }, values: &[icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}\u{61c}-"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}\u{61c}+"))), decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}-"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}+"))), decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}-"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}+"))), decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}−"))), plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 2u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}−"))), plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{7}\u{200e}−"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}+"))), decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("⹁"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['𞥐', '𞥑', '𞥒', '𞥓', '𞥔', '𞥕', '𞥖', '𞥗', '𞥘', '𞥙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}−"))), plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("\u{202f}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{8}\u{200e}-\u{200e}"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{8}\u{200e}+\u{200e}"))), decimal_separator: alloc::borrow::Cow::Borrowed("٫"), grouping_separator: alloc::borrow::Cow::Borrowed("٬"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['၀', '၁', '၂', '၃', '၄', '၅', '၆', '၇', '၈', '၉'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("،"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['߀', '߁', '߂', '߃', '߄', '߅', '߆', '߇', '߈', '߉'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{4}−"))), plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("’"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['᱐', '᱑', '᱒', '᱓', '᱔', '᱕', '᱖', '᱗', '᱘', '᱙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("\u{a0}"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['૦', '૧', '૨', '૩', '૪', '૫', '૬', '૭', '૮', '૯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['꧐', '꧑', '꧒', '꧓', '꧔', '꧕', '꧖', '꧗', '꧘', '꧙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['០', '១', '២', '៣', '៤', '៥', '៦', '៧', '៨', '៩'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['೦', '೧', '೨', '೩', '೪', '೫', '೬', '೭', '೮', '೯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['໐', '໑', '໒', '໓', '໔', '໕', '໖', '໗', '໘', '໙'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{7}\u{200e}−"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}+"))), decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("⹁"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed("،"), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{7}\u{200e}−"))), plus_sign_pattern: Some(icu_pattern::Pattern::::from_store_unchecked(alloc::borrow::Cow::Borrowed("\u{5}\u{200e}+"))), decimal_separator: alloc::borrow::Cow::Borrowed(","), grouping_separator: alloc::borrow::Cow::Borrowed("."), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['൦', '൧', '൨', '൩', '൪', '൫', '൬', '൭', '൮', '൯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 2u8, min_grouping: 1u8 }, digits: ['౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'] }, icu::decimal::provider::DecimalSymbolsV1 { minus_sign_pattern: None, plus_sign_pattern: None, decimal_separator: alloc::borrow::Cow::Borrowed("."), grouping_separator: alloc::borrow::Cow::Borrowed(","), grouping_sizes: icu::decimal::provider::GroupingSizesV1 { primary: 3u8, secondary: 3u8, min_grouping: 1u8 }, digits: ['๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙'] }] }; } #[clippy::msrv = "1.70"] impl icu_provider::DataProvider for $provider { diff --git a/provider/data/decimal/fingerprints.csv b/provider/data/decimal/fingerprints.csv index 1ef69ade774..8ed747c0288 100644 --- a/provider/data/decimal/fingerprints.csv +++ b/provider/data/decimal/fingerprints.csv @@ -1,216 +1,216 @@ decimal/symbols@1, , 1141B, 214 identifiers -decimal/symbols@1, , 8905B, 45 unique payloads -decimal/symbols@1, af, 197B, 8f773f51e85a65c1 -decimal/symbols@1, ar, 202B, c3f15eb63fa35608 -decimal/symbols@1, ar-AE, 202B, 29e2dc764329c56 -decimal/symbols@1, ar-AE/arab, 202B, -> ar -decimal/symbols@1, ar-DZ, 202B, d2f2336636ab14d7 -decimal/symbols@1, ar-DZ/arab, 202B, -> ar -decimal/symbols@1, ar-EH, 202B, -> ar-AE -decimal/symbols@1, ar-EH/arab, 202B, -> ar -decimal/symbols@1, ar-LB/latn, 202B, -> ar-DZ -decimal/symbols@1, ar-LY, 202B, -> ar-DZ -decimal/symbols@1, ar-LY/arab, 202B, -> ar -decimal/symbols@1, ar-MA, 202B, -> ar-DZ -decimal/symbols@1, ar-MA/arab, 202B, -> ar -decimal/symbols@1, ar-MR/latn, 202B, -> ar-DZ -decimal/symbols@1, ar-TN, 202B, -> ar-DZ -decimal/symbols@1, ar-TN/arab, 202B, -> ar -decimal/symbols@1, ar/latn, 202B, -> ar-AE -decimal/symbols@1, as, 196B, 31828215dcef2fcb -decimal/symbols@1, as/latn, 196B, 1be94084ee7dcfbf -decimal/symbols@1, ast, 196B, 3ec76252c7ed8d8c -decimal/symbols@1, az, 196B, -> ast -decimal/symbols@1, be, 197B, 9a02a4ca8407cfb5 -decimal/symbols@1, bg, 197B, -> be -decimal/symbols@1, bgc, 196B, ca87a14f1561c47 -decimal/symbols@1, bgc/latn, 196B, 8df59f98704d3b0c -decimal/symbols@1, bho, 196B, -> bgc -decimal/symbols@1, bho/latn, 196B, -> bgc/latn -decimal/symbols@1, blo, 197B, -> af -decimal/symbols@1, bn, 196B, -> as -decimal/symbols@1, bn/latn, 196B, -> as/latn -decimal/symbols@1, br, 197B, -> af -decimal/symbols@1, brx, 196B, -> as/latn -decimal/symbols@1, brx/deva, 196B, 7e9a4eca2b249e6b -decimal/symbols@1, bs, 196B, -> ast -decimal/symbols@1, bs-Cyrl, 196B, -> ast -decimal/symbols@1, ca, 196B, -> ast -decimal/symbols@1, cs, 197B, -> af -decimal/symbols@1, cv, 197B, -> af -decimal/symbols@1, da, 196B, -> ast -decimal/symbols@1, de, 196B, -> ast -decimal/symbols@1, de-AT, 197B, -> af -decimal/symbols@1, de-CH, 198B, 3d32cccea80b3e04 -decimal/symbols@1, de-LI, 198B, -> de-CH -decimal/symbols@1, doi/deva, 196B, -> bgc -decimal/symbols@1, dsb, 196B, -> ast -decimal/symbols@1, el, 196B, -> ast -decimal/symbols@1, en-AT, 196B, -> ast -decimal/symbols@1, en-BE, 196B, -> ast -decimal/symbols@1, en-CH, 198B, -> de-CH -decimal/symbols@1, en-DE, 196B, -> ast -decimal/symbols@1, en-DK, 196B, -> ast -decimal/symbols@1, en-FI, 197B, -> af -decimal/symbols@1, en-ID, 196B, -> ast -decimal/symbols@1, en-IN, 196B, -> as/latn -decimal/symbols@1, en-NL, 196B, -> ast -decimal/symbols@1, en-SE, 197B, -> af -decimal/symbols@1, en-SI, 196B, -> ast -decimal/symbols@1, eo, 197B, -> af -decimal/symbols@1, es, 196B, 2c22710b06ef69b6 -decimal/symbols@1, es-419, 196B, -> bgc/latn -decimal/symbols@1, es-AR, 196B, -> ast -decimal/symbols@1, es-BO, 196B, -> ast -decimal/symbols@1, es-CL, 196B, -> ast -decimal/symbols@1, es-CO, 196B, -> ast -decimal/symbols@1, es-CR, 197B, -> af -decimal/symbols@1, es-EC, 196B, -> ast -decimal/symbols@1, es-PY, 196B, -> ast -decimal/symbols@1, es-UY, 196B, -> ast -decimal/symbols@1, es-VE, 196B, -> ast -decimal/symbols@1, et, 199B, 7f5a8b63b2f65e0a -decimal/symbols@1, eu, 198B, a15eb3eb99d7e82f -decimal/symbols@1, fa, 206B, a0fa297e66c61095 -decimal/symbols@1, fa/latn, 204B, 1e71e4af6837906a -decimal/symbols@1, ff-Adlm, 198B, 6616be7d2ee463e2 -decimal/symbols@1, ff-Adlm/latn, 198B, e1fea4ebad753241 -decimal/symbols@1, fi, 199B, 90d0f7c945c25099 -decimal/symbols@1, fo, 198B, -> eu -decimal/symbols@1, fr, 198B, bd076f44d0623175 -decimal/symbols@1, fr-CA, 197B, -> af -decimal/symbols@1, fr-LU, 196B, -> ast -decimal/symbols@1, fr-MA, 196B, -> ast -decimal/symbols@1, fy, 196B, -> ast -decimal/symbols@1, gl, 196B, -> ast -decimal/symbols@1, gu, 196B, -> as/latn -decimal/symbols@1, gu/gujr, 196B, 732c15d0265eb49f -decimal/symbols@1, he, 202B, -> ar-AE -decimal/symbols@1, hi, 196B, -> as/latn -decimal/symbols@1, hi/deva, 196B, -> brx/deva -decimal/symbols@1, hr, 198B, -> eu -decimal/symbols@1, hsb, 196B, -> ast -decimal/symbols@1, hu, 197B, -> be -decimal/symbols@1, hy, 197B, -> af -decimal/symbols@1, ia, 196B, -> es -decimal/symbols@1, id, 196B, -> ast -decimal/symbols@1, ie, 197B, -> af -decimal/symbols@1, is, 196B, -> ast -decimal/symbols@1, it, 196B, -> ast -decimal/symbols@1, it-CH, 198B, -> de-CH -decimal/symbols@1, jv, 196B, -> ast -decimal/symbols@1, jv/java, 196B, c00a347acd69f78e -decimal/symbols@1, ka, 197B, -> be -decimal/symbols@1, kea, 197B, -> af -decimal/symbols@1, kgp, 196B, -> ast -decimal/symbols@1, kk, 197B, -> af -decimal/symbols@1, km/khmr, 196B, d371a392c8a49ebd -decimal/symbols@1, kn/knda, 196B, f56a54acfc463e3d -decimal/symbols@1, kok/deva, 196B, -> bgc -decimal/symbols@1, ks, 210B, ad303d0e62ad991d -decimal/symbols@1, ks/latn, 197B, 5e2dfa25e6dcacef -decimal/symbols@1, ku, 196B, -> ast -decimal/symbols@1, kxv, 196B, -> as/latn -decimal/symbols@1, kxv-Deva, 196B, -> as/latn -decimal/symbols@1, kxv-Deva/deva, 196B, -> brx/deva -decimal/symbols@1, kxv-Orya, 196B, -> as/latn -decimal/symbols@1, kxv-Orya/orya, 196B, b5be2e9987aa0e92 -decimal/symbols@1, kxv-Telu, 196B, -> as/latn -decimal/symbols@1, kxv-Telu/telu, 196B, c56cc668c8df4720 -decimal/symbols@1, ky, 197B, -> af -decimal/symbols@1, lb, 196B, -> ast -decimal/symbols@1, lij, 196B, -> ast -decimal/symbols@1, lmo, 198B, b356ba779def73df -decimal/symbols@1, lo, 196B, -> ast -decimal/symbols@1, lo/laoo, 196B, b75d40e037c05312 -decimal/symbols@1, lt, 199B, -> fi -decimal/symbols@1, lv, 197B, -> be -decimal/symbols@1, mai/deva, 196B, -> bgc -decimal/symbols@1, mk, 196B, -> ast -decimal/symbols@1, ml, 196B, -> as/latn -decimal/symbols@1, ml/mlym, 196B, 5a127888d0a6d8ec -decimal/symbols@1, mni, 196B, 315b942fbd3f19d5 -decimal/symbols@1, mni/latn, 196B, -> bgc/latn -decimal/symbols@1, mr, 196B, -> brx/deva -decimal/symbols@1, mr/latn, 196B, -> as/latn -decimal/symbols@1, ms-BN, 196B, -> ast -decimal/symbols@1, ms-ID, 196B, -> ast -decimal/symbols@1, my, 196B, dec50a433ec6e07a -decimal/symbols@1, my/latn, 196B, -> bgc/latn -decimal/symbols@1, nds, 196B, -> ast -decimal/symbols@1, ne, 196B, -> brx/deva -decimal/symbols@1, ne/latn, 196B, -> as/latn -decimal/symbols@1, nl, 196B, -> ast -decimal/symbols@1, no, 199B, -> fi -decimal/symbols@1, nqo, 197B, 3ad10eb5c875f27f -decimal/symbols@1, nqo/latn, 197B, -> ks/latn -decimal/symbols@1, oc, 197B, -> af -decimal/symbols@1, or, 196B, -> as/latn -decimal/symbols@1, or/orya, 196B, -> kxv-Orya/orya -decimal/symbols@1, pa, 196B, -> as/latn -decimal/symbols@1, pa/guru, 196B, a9bbb8e9c2e4c0a8 -decimal/symbols@1, pl, 197B, -> be -decimal/symbols@1, prg, 197B, -> af -decimal/symbols@1, ps, 210B, -> ks -decimal/symbols@1, ps/latn, 204B, 20eefabce09a4818 -decimal/symbols@1, pt, 196B, -> ast -decimal/symbols@1, pt-AO, 197B, -> af -decimal/symbols@1, pt-PT, 197B, -> be -decimal/symbols@1, qu-BO, 196B, -> ast -decimal/symbols@1, raj, 196B, -> bgc -decimal/symbols@1, raj/latn, 196B, -> bgc/latn -decimal/symbols@1, rm, 200B, 45ca5c6d1c50c098 -decimal/symbols@1, ro, 196B, -> ast -decimal/symbols@1, ru, 197B, -> af -decimal/symbols@1, ru-UA, 197B, -> be -decimal/symbols@1, sa, 196B, -> brx/deva -decimal/symbols@1, sa/latn, 196B, -> as/latn -decimal/symbols@1, sah, 197B, -> af -decimal/symbols@1, sat, 196B, 811b1d8c42386f5 -decimal/symbols@1, sat/latn, 196B, -> bgc/latn -decimal/symbols@1, sc, 196B, -> ast -decimal/symbols@1, sd, 202B, -> ar -decimal/symbols@1, sd/latn, 196B, -> bgc/latn -decimal/symbols@1, sk, 197B, -> af -decimal/symbols@1, sl, 198B, -> eu -decimal/symbols@1, sq, 197B, -> be -decimal/symbols@1, sr, 196B, -> ast -decimal/symbols@1, sr-Latn, 196B, -> ast -decimal/symbols@1, su, 196B, -> ast -decimal/symbols@1, sv, 199B, -> fi -decimal/symbols@1, sw-CD, 196B, -> ast -decimal/symbols@1, szl, 197B, -> af -decimal/symbols@1, ta, 196B, -> as/latn -decimal/symbols@1, ta-MY, 196B, -> bgc/latn -decimal/symbols@1, ta-MY/tamldec, 196B, 2cbb0cd77497e017 -decimal/symbols@1, ta-SG, 196B, -> bgc/latn -decimal/symbols@1, ta-SG/tamldec, 196B, -> ta-MY/tamldec -decimal/symbols@1, ta/tamldec, 196B, 1b13bb3a71cbed6d -decimal/symbols@1, te, 196B, -> as/latn -decimal/symbols@1, te/telu, 196B, 3dbd189bc0e1b0f5 -decimal/symbols@1, tg, 197B, -> af -decimal/symbols@1, th/thai, 196B, db1d187d375ccfd2 -decimal/symbols@1, tk, 197B, -> af -decimal/symbols@1, tr, 196B, -> ast -decimal/symbols@1, tt, 197B, -> af -decimal/symbols@1, ug/arabext, 210B, -> ks -decimal/symbols@1, uk, 197B, -> af -decimal/symbols@1, und, 196B, -> bgc/latn -decimal/symbols@1, ur, 202B, -> ar-AE -decimal/symbols@1, ur-IN, 210B, -> ks -decimal/symbols@1, ur-IN/latn, 202B, -> ar-AE -decimal/symbols@1, ur/arabext, 210B, -> ks -decimal/symbols@1, uz, 197B, -> af -decimal/symbols@1, uz-Cyrl, 197B, -> af -decimal/symbols@1, vec, 198B, -> fr -decimal/symbols@1, vi, 196B, -> ast -decimal/symbols@1, vmw, 196B, -> ast -decimal/symbols@1, wo, 196B, -> ast -decimal/symbols@1, xh, 197B, 900c37a0e41f6259 -decimal/symbols@1, xnr, 196B, -> as/latn -decimal/symbols@1, xnr/deva, 196B, -> brx/deva -decimal/symbols@1, yrl, 196B, -> ast -decimal/symbols@1, yue-Hans/hanidec, 196B, 61528a85cbe1449 -decimal/symbols@1, yue/hanidec, 196B, -> yue-Hans/hanidec -decimal/symbols@1, zh-Hant/hanidec, 196B, -> yue-Hans/hanidec -decimal/symbols@1, zh/hanidec, 196B, -> yue-Hans/hanidec +decimal/symbols@1, , 6691B, 45 unique payloads +decimal/symbols@1, af, 147B, 2b1ee74ee6114f67 +decimal/symbols@1, ar, 156B, 2e8bbb3d39959dc4 +decimal/symbols@1, ar-AE, 156B, 7f23b5a03fd52128 +decimal/symbols@1, ar-AE/arab, 156B, -> ar +decimal/symbols@1, ar-DZ, 156B, 9e52a509291250f +decimal/symbols@1, ar-DZ/arab, 156B, -> ar +decimal/symbols@1, ar-EH, 156B, -> ar-AE +decimal/symbols@1, ar-EH/arab, 156B, -> ar +decimal/symbols@1, ar-LB/latn, 156B, -> ar-DZ +decimal/symbols@1, ar-LY, 156B, -> ar-DZ +decimal/symbols@1, ar-LY/arab, 156B, -> ar +decimal/symbols@1, ar-MA, 156B, -> ar-DZ +decimal/symbols@1, ar-MA/arab, 156B, -> ar +decimal/symbols@1, ar-MR/latn, 156B, -> ar-DZ +decimal/symbols@1, ar-TN, 156B, -> ar-DZ +decimal/symbols@1, ar-TN/arab, 156B, -> ar +decimal/symbols@1, ar/latn, 156B, -> ar-AE +decimal/symbols@1, as, 146B, 99acd4d3e92d3aee +decimal/symbols@1, as/latn, 146B, 79a1cce4c80da81b +decimal/symbols@1, ast, 146B, cf1deac15adb80f3 +decimal/symbols@1, az, 146B, -> ast +decimal/symbols@1, be, 147B, 87559d3ddf67b706 +decimal/symbols@1, bg, 147B, -> be +decimal/symbols@1, bgc, 146B, 59fe1f3260191ec8 +decimal/symbols@1, bgc/latn, 146B, 68895de8537c5d4e +decimal/symbols@1, bho, 146B, -> bgc +decimal/symbols@1, bho/latn, 146B, -> bgc/latn +decimal/symbols@1, blo, 147B, -> af +decimal/symbols@1, bn, 146B, -> as +decimal/symbols@1, bn/latn, 146B, -> as/latn +decimal/symbols@1, br, 147B, -> af +decimal/symbols@1, brx, 146B, -> as/latn +decimal/symbols@1, brx/deva, 146B, eb88587af1d53765 +decimal/symbols@1, bs, 146B, -> ast +decimal/symbols@1, bs-Cyrl, 146B, -> ast +decimal/symbols@1, ca, 146B, -> ast +decimal/symbols@1, cs, 147B, -> af +decimal/symbols@1, cv, 147B, -> af +decimal/symbols@1, da, 146B, -> ast +decimal/symbols@1, de, 146B, -> ast +decimal/symbols@1, de-AT, 147B, -> af +decimal/symbols@1, de-CH, 148B, e6a3715a2dfd4f07 +decimal/symbols@1, de-LI, 148B, -> de-CH +decimal/symbols@1, doi/deva, 146B, -> bgc +decimal/symbols@1, dsb, 146B, -> ast +decimal/symbols@1, el, 146B, -> ast +decimal/symbols@1, en-AT, 146B, -> ast +decimal/symbols@1, en-BE, 146B, -> ast +decimal/symbols@1, en-CH, 148B, -> de-CH +decimal/symbols@1, en-DE, 146B, -> ast +decimal/symbols@1, en-DK, 146B, -> ast +decimal/symbols@1, en-FI, 147B, -> af +decimal/symbols@1, en-ID, 146B, -> ast +decimal/symbols@1, en-IN, 146B, -> as/latn +decimal/symbols@1, en-NL, 146B, -> ast +decimal/symbols@1, en-SE, 147B, -> af +decimal/symbols@1, en-SI, 146B, -> ast +decimal/symbols@1, eo, 147B, -> af +decimal/symbols@1, es, 146B, fe7a6a94d1fb95de +decimal/symbols@1, es-419, 146B, -> bgc/latn +decimal/symbols@1, es-AR, 146B, -> ast +decimal/symbols@1, es-BO, 146B, -> ast +decimal/symbols@1, es-CL, 146B, -> ast +decimal/symbols@1, es-CO, 146B, -> ast +decimal/symbols@1, es-CR, 147B, -> af +decimal/symbols@1, es-EC, 146B, -> ast +decimal/symbols@1, es-PY, 146B, -> ast +decimal/symbols@1, es-UY, 146B, -> ast +decimal/symbols@1, es-VE, 146B, -> ast +decimal/symbols@1, et, 151B, 171b21bb7f508099 +decimal/symbols@1, eu, 150B, 1fe6efee02b3c842 +decimal/symbols@1, fa, 160B, 26c9107cf8f72ee1 +decimal/symbols@1, fa/latn, 158B, c7c7b09241cadc0 +decimal/symbols@1, ff-Adlm, 148B, 89a061c122fb18b3 +decimal/symbols@1, ff-Adlm/latn, 148B, 1edb07ab3c082659 +decimal/symbols@1, fi, 151B, c00822c899e02aa1 +decimal/symbols@1, fo, 150B, -> eu +decimal/symbols@1, fr, 148B, 699fd7debc496fd4 +decimal/symbols@1, fr-CA, 147B, -> af +decimal/symbols@1, fr-LU, 146B, -> ast +decimal/symbols@1, fr-MA, 146B, -> ast +decimal/symbols@1, fy, 146B, -> ast +decimal/symbols@1, gl, 146B, -> ast +decimal/symbols@1, gu, 146B, -> as/latn +decimal/symbols@1, gu/gujr, 146B, c85e03dd1134a6f9 +decimal/symbols@1, he, 156B, -> ar-AE +decimal/symbols@1, hi, 146B, -> as/latn +decimal/symbols@1, hi/deva, 146B, -> brx/deva +decimal/symbols@1, hr, 150B, -> eu +decimal/symbols@1, hsb, 146B, -> ast +decimal/symbols@1, hu, 147B, -> be +decimal/symbols@1, hy, 147B, -> af +decimal/symbols@1, ia, 146B, -> es +decimal/symbols@1, id, 146B, -> ast +decimal/symbols@1, ie, 147B, -> af +decimal/symbols@1, is, 146B, -> ast +decimal/symbols@1, it, 146B, -> ast +decimal/symbols@1, it-CH, 148B, -> de-CH +decimal/symbols@1, jv, 146B, -> ast +decimal/symbols@1, jv/java, 146B, fb52b49c38e7ff08 +decimal/symbols@1, ka, 147B, -> be +decimal/symbols@1, kea, 147B, -> af +decimal/symbols@1, kgp, 146B, -> ast +decimal/symbols@1, kk, 147B, -> af +decimal/symbols@1, km/khmr, 146B, f1932423facb2434 +decimal/symbols@1, kn/knda, 146B, dc0bdbf8a80904be +decimal/symbols@1, kok/deva, 146B, -> bgc +decimal/symbols@1, ks, 164B, 31bdad135e3baa9a +decimal/symbols@1, ks/latn, 147B, e7036e837dc75069 +decimal/symbols@1, ku, 146B, -> ast +decimal/symbols@1, kxv, 146B, -> as/latn +decimal/symbols@1, kxv-Deva, 146B, -> as/latn +decimal/symbols@1, kxv-Deva/deva, 146B, -> brx/deva +decimal/symbols@1, kxv-Orya, 146B, -> as/latn +decimal/symbols@1, kxv-Orya/orya, 146B, 199a5be5e6ac6926 +decimal/symbols@1, kxv-Telu, 146B, -> as/latn +decimal/symbols@1, kxv-Telu/telu, 146B, 249f5752e1a30d3f +decimal/symbols@1, ky, 147B, -> af +decimal/symbols@1, lb, 146B, -> ast +decimal/symbols@1, lij, 146B, -> ast +decimal/symbols@1, lmo, 148B, b9136905d685e0af +decimal/symbols@1, lo, 146B, -> ast +decimal/symbols@1, lo/laoo, 146B, 99a12b181607045a +decimal/symbols@1, lt, 151B, -> fi +decimal/symbols@1, lv, 147B, -> be +decimal/symbols@1, mai/deva, 146B, -> bgc +decimal/symbols@1, mk, 146B, -> ast +decimal/symbols@1, ml, 146B, -> as/latn +decimal/symbols@1, ml/mlym, 146B, a27de7924d930f6 +decimal/symbols@1, mni, 146B, 21b892cf092898ca +decimal/symbols@1, mni/latn, 146B, -> bgc/latn +decimal/symbols@1, mr, 146B, -> brx/deva +decimal/symbols@1, mr/latn, 146B, -> as/latn +decimal/symbols@1, ms-BN, 146B, -> ast +decimal/symbols@1, ms-ID, 146B, -> ast +decimal/symbols@1, my, 146B, 890b9037740ab068 +decimal/symbols@1, my/latn, 146B, -> bgc/latn +decimal/symbols@1, nds, 146B, -> ast +decimal/symbols@1, ne, 146B, -> brx/deva +decimal/symbols@1, ne/latn, 146B, -> as/latn +decimal/symbols@1, nl, 146B, -> ast +decimal/symbols@1, no, 151B, -> fi +decimal/symbols@1, nqo, 147B, 17d9d92e495dc5c6 +decimal/symbols@1, nqo/latn, 147B, -> ks/latn +decimal/symbols@1, oc, 147B, -> af +decimal/symbols@1, or, 146B, -> as/latn +decimal/symbols@1, or/orya, 146B, -> kxv-Orya/orya +decimal/symbols@1, pa, 146B, -> as/latn +decimal/symbols@1, pa/guru, 146B, 121001f9a436279 +decimal/symbols@1, pl, 147B, -> be +decimal/symbols@1, prg, 147B, -> af +decimal/symbols@1, ps, 164B, -> ks +decimal/symbols@1, ps/latn, 158B, edee36f6b4e10e4d +decimal/symbols@1, pt, 146B, -> ast +decimal/symbols@1, pt-AO, 147B, -> af +decimal/symbols@1, pt-PT, 147B, -> be +decimal/symbols@1, qu-BO, 146B, -> ast +decimal/symbols@1, raj, 146B, -> bgc +decimal/symbols@1, raj/latn, 146B, -> bgc/latn +decimal/symbols@1, rm, 152B, a4743bc9621e0355 +decimal/symbols@1, ro, 146B, -> ast +decimal/symbols@1, ru, 147B, -> af +decimal/symbols@1, ru-UA, 147B, -> be +decimal/symbols@1, sa, 146B, -> brx/deva +decimal/symbols@1, sa/latn, 146B, -> as/latn +decimal/symbols@1, sah, 147B, -> af +decimal/symbols@1, sat, 146B, aed5e3649d3b3549 +decimal/symbols@1, sat/latn, 146B, -> bgc/latn +decimal/symbols@1, sc, 146B, -> ast +decimal/symbols@1, sd, 156B, -> ar +decimal/symbols@1, sd/latn, 146B, -> bgc/latn +decimal/symbols@1, sk, 147B, -> af +decimal/symbols@1, sl, 150B, -> eu +decimal/symbols@1, sq, 147B, -> be +decimal/symbols@1, sr, 146B, -> ast +decimal/symbols@1, sr-Latn, 146B, -> ast +decimal/symbols@1, su, 146B, -> ast +decimal/symbols@1, sv, 151B, -> fi +decimal/symbols@1, sw-CD, 146B, -> ast +decimal/symbols@1, szl, 147B, -> af +decimal/symbols@1, ta, 146B, -> as/latn +decimal/symbols@1, ta-MY, 146B, -> bgc/latn +decimal/symbols@1, ta-MY/tamldec, 146B, 4eaabcc55565c567 +decimal/symbols@1, ta-SG, 146B, -> bgc/latn +decimal/symbols@1, ta-SG/tamldec, 146B, -> ta-MY/tamldec +decimal/symbols@1, ta/tamldec, 146B, b4ecc8a560f7113e +decimal/symbols@1, te, 146B, -> as/latn +decimal/symbols@1, te/telu, 146B, 16c8e05eb8c77ab9 +decimal/symbols@1, tg, 147B, -> af +decimal/symbols@1, th/thai, 146B, 73f5a67a11a773de +decimal/symbols@1, tk, 147B, -> af +decimal/symbols@1, tr, 146B, -> ast +decimal/symbols@1, tt, 147B, -> af +decimal/symbols@1, ug/arabext, 164B, -> ks +decimal/symbols@1, uk, 147B, -> af +decimal/symbols@1, und, 146B, -> bgc/latn +decimal/symbols@1, ur, 156B, -> ar-AE +decimal/symbols@1, ur-IN, 164B, -> ks +decimal/symbols@1, ur-IN/latn, 156B, -> ar-AE +decimal/symbols@1, ur/arabext, 164B, -> ks +decimal/symbols@1, uz, 147B, -> af +decimal/symbols@1, uz-Cyrl, 147B, -> af +decimal/symbols@1, vec, 148B, -> fr +decimal/symbols@1, vi, 146B, -> ast +decimal/symbols@1, vmw, 146B, -> ast +decimal/symbols@1, wo, 146B, -> ast +decimal/symbols@1, xh, 147B, 5e084c62b1c087a6 +decimal/symbols@1, xnr, 146B, -> as/latn +decimal/symbols@1, xnr/deva, 146B, -> brx/deva +decimal/symbols@1, yrl, 146B, -> ast +decimal/symbols@1, yue-Hans/hanidec, 146B, 5fa9df04827f5c55 +decimal/symbols@1, yue/hanidec, 146B, -> yue-Hans/hanidec +decimal/symbols@1, zh-Hant/hanidec, 146B, -> yue-Hans/hanidec +decimal/symbols@1, zh/hanidec, 146B, -> yue-Hans/hanidec diff --git a/provider/source/data/debug/decimal/symbols@1/ar-EG.json b/provider/source/data/debug/decimal/symbols@1/ar-EG.json index ad30f81da83..10dfae89398 100644 --- a/provider/source/data/debug/decimal/symbols@1/ar-EG.json +++ b/provider/source/data/debug/decimal/symbols@1/ar-EG.json @@ -1,12 +1,20 @@ { - "minus_sign_affixes": { - "prefix": "؜-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "؜+", - "suffix": "" - }, + "minus_sign_pattern": [ + { + "Literal": "؜-" + }, + { + "Placeholder": "Singleton" + } + ], + "plus_sign_pattern": [ + { + "Literal": "؜+" + }, + { + "Placeholder": "Singleton" + } + ], "decimal_separator": "٫", "grouping_separator": "٬", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/ar.json b/provider/source/data/debug/decimal/symbols@1/ar.json index ad30f81da83..10dfae89398 100644 --- a/provider/source/data/debug/decimal/symbols@1/ar.json +++ b/provider/source/data/debug/decimal/symbols@1/ar.json @@ -1,12 +1,20 @@ { - "minus_sign_affixes": { - "prefix": "؜-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "؜+", - "suffix": "" - }, + "minus_sign_pattern": [ + { + "Literal": "؜-" + }, + { + "Placeholder": "Singleton" + } + ], + "plus_sign_pattern": [ + { + "Literal": "؜+" + }, + { + "Placeholder": "Singleton" + } + ], "decimal_separator": "٫", "grouping_separator": "٬", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/bn.json b/provider/source/data/debug/decimal/symbols@1/bn.json index 453c93a7481..3b0650757b4 100644 --- a/provider/source/data/debug/decimal/symbols@1/bn.json +++ b/provider/source/data/debug/decimal/symbols@1/bn.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/ccp.json b/provider/source/data/debug/decimal/symbols@1/ccp.json index 0ee6c07a1bb..ed1854541c1 100644 --- a/provider/source/data/debug/decimal/symbols@1/ccp.json +++ b/provider/source/data/debug/decimal/symbols@1/ccp.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/en-001.json b/provider/source/data/debug/decimal/symbols@1/en-001.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/en-001.json +++ b/provider/source/data/debug/decimal/symbols@1/en-001.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/en-ZA.json b/provider/source/data/debug/decimal/symbols@1/en-ZA.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/en-ZA.json +++ b/provider/source/data/debug/decimal/symbols@1/en-ZA.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/en.json b/provider/source/data/debug/decimal/symbols@1/en.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/en.json +++ b/provider/source/data/debug/decimal/symbols@1/en.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/es-AR.json b/provider/source/data/debug/decimal/symbols@1/es-AR.json index a722d954889..36c2319eeab 100644 --- a/provider/source/data/debug/decimal/symbols@1/es-AR.json +++ b/provider/source/data/debug/decimal/symbols@1/es-AR.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": ".", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/es.json b/provider/source/data/debug/decimal/symbols@1/es.json index 5d636e26aef..39ead1023d1 100644 --- a/provider/source/data/debug/decimal/symbols@1/es.json +++ b/provider/source/data/debug/decimal/symbols@1/es.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": ".", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/fil.json b/provider/source/data/debug/decimal/symbols@1/fil.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/fil.json +++ b/provider/source/data/debug/decimal/symbols@1/fil.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/fr.json b/provider/source/data/debug/decimal/symbols@1/fr.json index f7a34260a09..ab5dda4faaa 100644 --- a/provider/source/data/debug/decimal/symbols@1/fr.json +++ b/provider/source/data/debug/decimal/symbols@1/fr.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": " ", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/ja.json b/provider/source/data/debug/decimal/symbols@1/ja.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/ja.json +++ b/provider/source/data/debug/decimal/symbols@1/ja.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/latn/ar-EG.json b/provider/source/data/debug/decimal/symbols@1/latn/ar-EG.json index 5ad066c724d..e1bf87e7fb1 100644 --- a/provider/source/data/debug/decimal/symbols@1/latn/ar-EG.json +++ b/provider/source/data/debug/decimal/symbols@1/latn/ar-EG.json @@ -1,12 +1,20 @@ { - "minus_sign_affixes": { - "prefix": "‎-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "‎+", - "suffix": "" - }, + "minus_sign_pattern": [ + { + "Literal": "‎-" + }, + { + "Placeholder": "Singleton" + } + ], + "plus_sign_pattern": [ + { + "Literal": "‎+" + }, + { + "Placeholder": "Singleton" + } + ], "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/latn/ar.json b/provider/source/data/debug/decimal/symbols@1/latn/ar.json index 5ad066c724d..e1bf87e7fb1 100644 --- a/provider/source/data/debug/decimal/symbols@1/latn/ar.json +++ b/provider/source/data/debug/decimal/symbols@1/latn/ar.json @@ -1,12 +1,20 @@ { - "minus_sign_affixes": { - "prefix": "‎-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "‎+", - "suffix": "" - }, + "minus_sign_pattern": [ + { + "Literal": "‎-" + }, + { + "Placeholder": "Singleton" + } + ], + "plus_sign_pattern": [ + { + "Literal": "‎+" + }, + { + "Placeholder": "Singleton" + } + ], "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/latn/bn.json b/provider/source/data/debug/decimal/symbols@1/latn/bn.json index a1c91b384e6..cbbd9e225c1 100644 --- a/provider/source/data/debug/decimal/symbols@1/latn/bn.json +++ b/provider/source/data/debug/decimal/symbols@1/latn/bn.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/latn/ccp.json b/provider/source/data/debug/decimal/symbols@1/latn/ccp.json index a1c91b384e6..cbbd9e225c1 100644 --- a/provider/source/data/debug/decimal/symbols@1/latn/ccp.json +++ b/provider/source/data/debug/decimal/symbols@1/latn/ccp.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/ru.json b/provider/source/data/debug/decimal/symbols@1/ru.json index 2962fe22987..884d9774fa7 100644 --- a/provider/source/data/debug/decimal/symbols@1/ru.json +++ b/provider/source/data/debug/decimal/symbols@1/ru.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": " ", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/sr-Latn.json b/provider/source/data/debug/decimal/symbols@1/sr-Latn.json index a722d954889..36c2319eeab 100644 --- a/provider/source/data/debug/decimal/symbols@1/sr-Latn.json +++ b/provider/source/data/debug/decimal/symbols@1/sr-Latn.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": ".", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/sr.json b/provider/source/data/debug/decimal/symbols@1/sr.json index a722d954889..36c2319eeab 100644 --- a/provider/source/data/debug/decimal/symbols@1/sr.json +++ b/provider/source/data/debug/decimal/symbols@1/sr.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": ".", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/th.json b/provider/source/data/debug/decimal/symbols@1/th.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/th.json +++ b/provider/source/data/debug/decimal/symbols@1/th.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/thai/th.json b/provider/source/data/debug/decimal/symbols@1/thai/th.json index 81dfd39492e..b9bedce6c54 100644 --- a/provider/source/data/debug/decimal/symbols@1/thai/th.json +++ b/provider/source/data/debug/decimal/symbols@1/thai/th.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/tr.json b/provider/source/data/debug/decimal/symbols@1/tr.json index a722d954889..36c2319eeab 100644 --- a/provider/source/data/debug/decimal/symbols@1/tr.json +++ b/provider/source/data/debug/decimal/symbols@1/tr.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ",", "grouping_separator": ".", "grouping_sizes": { diff --git a/provider/source/data/debug/decimal/symbols@1/und.json b/provider/source/data/debug/decimal/symbols@1/und.json index b10589e19e5..354aa149eb3 100644 --- a/provider/source/data/debug/decimal/symbols@1/und.json +++ b/provider/source/data/debug/decimal/symbols@1/und.json @@ -1,12 +1,6 @@ { - "minus_sign_affixes": { - "prefix": "-", - "suffix": "" - }, - "plus_sign_affixes": { - "prefix": "+", - "suffix": "" - }, + "minus_sign_pattern": null, + "plus_sign_pattern": null, "decimal_separator": ".", "grouping_separator": ",", "grouping_sizes": { diff --git a/provider/source/src/decimal/decimal_pattern.rs b/provider/source/src/decimal/decimal_pattern.rs index 64bc17799c8..842e7135c99 100644 --- a/provider/source/src/decimal/decimal_pattern.rs +++ b/provider/source/src/decimal/decimal_pattern.rs @@ -7,7 +7,7 @@ //! Spec reference: use displaydoc::Display; -use icu::decimal::provider::AffixesV1; +use icu_pattern::SinglePlaceholderPattern; #[cfg(feature = "experimental")] use icu_pattern::{DoublePlaceholderKey, PatternItemCow}; use itertools::Itertools; @@ -117,17 +117,28 @@ impl FromStr for DecimalPattern { } impl DecimalPattern { - pub(crate) fn localize_sign(&self, sign_str: &str) -> AffixesV1<'static> { - // UTS 35: the absence of a negative pattern means a single prefixed sign + pub(crate) fn localize_sign( + &self, + sign_str: &str, + ) -> SinglePlaceholderPattern> { let signed_affixes = self .negative .as_ref() - .map(|subpattern| (subpattern.prefix.as_str(), subpattern.suffix.as_str())) - .unwrap_or_else(|| ("-", "")); - AffixesV1 { - prefix: Cow::Owned(signed_affixes.0.replace('-', sign_str)), - suffix: Cow::Owned(signed_affixes.1.replace('-', sign_str)), - } + .map(|subpattern| { + format!( + "{}{{0}}{}", + subpattern.prefix.replace('-', sign_str), + subpattern.suffix.replace('-', sign_str) + ) + }) + // UTS 35: the absence of a negative pattern means a single prefixed sign + .unwrap_or_else(|| format!("{sign_str}{{0}}")); + SinglePlaceholderPattern::from_store_unchecked( + SinglePlaceholderPattern::from_str(&signed_affixes) + .unwrap() + .take_store() + .into(), + ) } } diff --git a/provider/source/src/decimal/symbols.rs b/provider/source/src/decimal/symbols.rs index 0d1edecd2b4..b21df908885 100644 --- a/provider/source/src/decimal/symbols.rs +++ b/provider/source/src/decimal/symbols.rs @@ -77,8 +77,10 @@ impl TryFrom> for DecimalSymbolsV1<'static> { .map_err(|s: super::decimal_pattern::Error| s.to_string())?; Ok(Self { - minus_sign_affixes: parsed_pattern.localize_sign(&symbols.minus_sign), - plus_sign_affixes: parsed_pattern.localize_sign(&symbols.plus_sign), + minus_sign_pattern: Some(parsed_pattern.localize_sign(&symbols.minus_sign)) + .filter(|p| *p != NEGATIVE_DEFAULT), + plus_sign_pattern: Some(parsed_pattern.localize_sign(&symbols.plus_sign)) + .filter(|p| *p != POSITIVE_DEFAULT), decimal_separator: Cow::Owned(symbols.decimal.clone()), grouping_separator: Cow::Owned(symbols.group.clone()), grouping_sizes: GroupingSizesV1 { diff --git a/tools/make/depcheck/src/allowlist.rs b/tools/make/depcheck/src/allowlist.rs index cea4bbba42e..d053d4dd92c 100644 --- a/tools/make/depcheck/src/allowlist.rs +++ b/tools/make/depcheck/src/allowlist.rs @@ -29,6 +29,7 @@ pub const BASIC_RUNTIME_DEPS: &[&str] = &[ // ICU4X utils "calendrical_calculations", "fixed_decimal", + "icu_pattern", "icu_provider", "litemap", "tinystr", @@ -97,7 +98,6 @@ pub const EXTRA_DATA_DEPS: &[&str] = &[ /// Keep in sync with Cargo.toml crates.io dependencies. pub const EXTRA_EXPERIMENTAL_DEPS: &[&str] = &[ "icu_experimental", - "icu_pattern", "num-bigint", "num-integer", "num-rational", @@ -163,7 +163,6 @@ pub const EXTRA_DATAGEN_BIKESHED_DEPS: &[&str] = &[ "erased-serde", "heck", "icu_codepointtrie_builder", - "icu_pattern", "icu_provider_adapters", "icu_provider_baked", "icu_provider_registry", diff --git a/tutorials/cpp/Cargo.lock b/tutorials/cpp/Cargo.lock index a6b06a62c91..c2fe48b3149 100644 --- a/tutorials/cpp/Cargo.lock +++ b/tutorials/cpp/Cargo.lock @@ -164,6 +164,7 @@ dependencies = [ "icu_locale", "icu_locale_core", "icu_normalizer", + "icu_pattern", "icu_plurals", "icu_properties", "icu_provider", @@ -278,6 +279,7 @@ dependencies = [ "displaydoc", "fixed_decimal", "icu_decimal_data", + "icu_pattern", "icu_provider", "serde", "writeable", diff --git a/utils/pattern/src/frontend/mod.rs b/utils/pattern/src/frontend/mod.rs index 2d0df63c286..b584c828396 100644 --- a/utils/pattern/src/frontend/mod.rs +++ b/utils/pattern/src/frontend/mod.rs @@ -9,10 +9,12 @@ mod serde; use crate::common::*; use crate::Error; use crate::PatternOrUtf8Error; +use crate::SinglePlaceholderPattern; #[cfg(feature = "alloc")] use crate::{Parser, ParserOptions}; #[cfg(feature = "alloc")] use alloc::{borrow::ToOwned, str::FromStr, string::String}; +use core::ops::Deref; use core::{ convert::Infallible, fmt::{self, Write}, @@ -20,6 +22,44 @@ use core::{ }; use writeable::{adapters::TryWriteableInfallibleAsWriteable, PartsWrite, TryWriteable, Writeable}; +#[allow(clippy::unwrap_used)] +#[cfg(feature = "alloc")] +impl SinglePlaceholderPattern { + pub fn encode_store(prefix: &str, suffix: &str) -> alloc::boxed::Box { + alloc::format!( + "{}{prefix}{suffix}", + char::from_u32(prefix.len() as u32 + 1).unwrap() + ) + .into_boxed_str() + } +} + +#[allow(clippy::unwrap_used, clippy::indexing_slicing)] +impl SinglePlaceholderPattern +where + Store: Deref, +{ + pub fn prefix(&self) -> &str { + let mut chars = self.store.chars(); + let index = chars.next().unwrap() as usize; + if let Some(index) = index.checked_sub(1) { + &chars.as_str()[..index] + } else { + chars.as_str() + } + } + + pub fn suffix(&self) -> &str { + let mut chars = self.store.chars(); + let index = chars.next().unwrap() as usize; + if let Some(index) = index.checked_sub(1) { + &chars.as_str()[index..] + } else { + chars.as_str() + } + } +} + /// A string pattern with placeholders. /// /// There are 2 generic parameters: `Backend` and `Store`.