From a89dc0a38852ee5c32b87f198cb8bb166b12662b Mon Sep 17 00:00:00 2001 From: Robert Bastian <4706271+robertbastian@users.noreply.github.com> Date: Wed, 25 Sep 2024 18:27:14 +0200 Subject: [PATCH] Using ZeroTrie for property parser (#5576) --- Cargo.lock | 1 + .../src/transliterate/compile/mod.rs | 30 +-- .../src/transliterate/compile/parse.rs | 10 +- .../src/unicodeset_parse/parse.rs | 30 +-- components/properties/Cargo.toml | 7 +- components/properties/src/names.rs | 80 +++++-- components/properties/src/props.rs | 31 +-- components/properties/src/provider.rs | 76 +++---- components/properties/src/provider/names.rs | 204 ++---------------- ...idi_class_name_to_value_v2_marker.rs.data} | 41 ++-- ...ing_class_name_to_value_v2_marker.rs.data} | 41 ++-- ...ian_width_name_to_value_v2_marker.rs.data} | 41 ++-- ...gory_mask_name_to_value_v2_marker.rs.data} | 41 ++-- ..._category_name_to_value_v2_marker.rs.data} | 41 ++-- ...ter_break_name_to_value_v2_marker.rs.data} | 41 ++-- ...able_type_name_to_value_v2_marker.rs.data} | 41 ++-- ..._category_name_to_value_v2_marker.rs.data} | 41 ++-- ...ning_type_name_to_value_v2_marker.rs.data} | 41 ++-- ...line_break_name_to_value_v1_marker.rs.data | 80 ------- ...line_break_name_to_value_v2_marker.rs.data | 75 +++++++ provider/data/properties/data/mod.rs | 78 +++---- .../script_name_to_value_v1_marker.rs.data | 80 ------- .../script_name_to_value_v2_marker.rs.data | 75 +++++++ ...nce_break_name_to_value_v2_marker.rs.data} | 41 ++-- ...ord_break_name_to_value_v2_marker.rs.data} | 41 ++-- provider/data/properties/fingerprints.csv | 26 +-- ...idi_class_name_to_value_v2_marker.rs.data} | 41 ++-- ...ing_class_name_to_value_v2_marker.rs.data} | 41 ++-- ...ian_width_name_to_value_v2_marker.rs.data} | 41 ++-- ...gory_mask_name_to_value_v2_marker.rs.data} | 41 ++-- ..._category_name_to_value_v2_marker.rs.data} | 41 ++-- ...ter_break_name_to_value_v2_marker.rs.data} | 41 ++-- ...able_type_name_to_value_v2_marker.rs.data} | 41 ++-- ..._category_name_to_value_v2_marker.rs.data} | 41 ++-- ...ning_type_name_to_value_v2_marker.rs.data} | 41 ++-- ...line_break_name_to_value_v1_marker.rs.data | 80 ------- ...line_break_name_to_value_v2_marker.rs.data | 75 +++++++ provider/data/properties/stubdata/mod.rs | 78 +++---- .../script_name_to_value_v1_marker.rs.data | 80 ------- .../script_name_to_value_v2_marker.rs.data | 75 +++++++ ...nce_break_name_to_value_v2_marker.rs.data} | 41 ++-- ...ord_break_name_to_value_v2_marker.rs.data} | 41 ++-- provider/registry/src/lib.rs | 26 +-- .../propnames/from/{GCB@1.json => GCB@2.json} | 10 +- .../from/{InSC@1.json => InSC@2.json} | 0 .../propnames/from/{SB@1.json => SB@2.json} | 6 +- .../propnames/from/{WB@1.json => WB@2.json} | 20 +- .../propnames/from/{bc@1.json => bc@2.json} | 24 +-- .../propnames/from/{ccc@1.json => ccc@2.json} | 20 +- .../propnames/from/{ea@1.json => ea@2.json} | 0 .../propnames/from/{gc@1.json => gc@2.json} | 6 +- .../propnames/from/{gcm@1.json => gcm@2.json} | 8 +- .../propnames/from/{hst@1.json => hst@2.json} | 4 +- .../propnames/from/{jt@1.json => jt@2.json} | 0 .../propnames/from/{lb@1.json => lb@2.json} | 34 +-- .../propnames/from/{sc@1.json => sc@2.json} | 6 +- .../src/properties/enum_codepointtrie.rs | 52 ++--- 57 files changed, 1060 insertions(+), 1329 deletions(-) rename provider/data/properties/data/{bidi_class_name_to_value_v1_marker.rs.data => bidi_class_name_to_value_v2_marker.rs.data} (55%) rename provider/data/properties/data/{canonical_combining_class_name_to_value_v1_marker.rs.data => canonical_combining_class_name_to_value_v2_marker.rs.data} (52%) rename provider/data/properties/{stubdata/east_asian_width_name_to_value_v1_marker.rs.data => data/east_asian_width_name_to_value_v2_marker.rs.data} (65%) rename provider/data/properties/{stubdata/general_category_mask_name_to_value_v1_marker.rs.data => data/general_category_mask_name_to_value_v2_marker.rs.data} (50%) rename provider/data/properties/data/{general_category_name_to_value_v1_marker.rs.data => general_category_name_to_value_v2_marker.rs.data} (54%) rename provider/data/properties/{stubdata/grapheme_cluster_break_name_to_value_v1_marker.rs.data => data/grapheme_cluster_break_name_to_value_v2_marker.rs.data} (62%) rename provider/data/properties/{stubdata/hangul_syllable_type_name_to_value_v1_marker.rs.data => data/hangul_syllable_type_name_to_value_v2_marker.rs.data} (65%) rename provider/data/properties/data/{indic_syllabic_category_name_to_value_v1_marker.rs.data => indic_syllabic_category_name_to_value_v2_marker.rs.data} (56%) rename provider/data/properties/data/{joining_type_name_to_value_v1_marker.rs.data => joining_type_name_to_value_v2_marker.rs.data} (64%) delete mode 100644 provider/data/properties/data/line_break_name_to_value_v1_marker.rs.data create mode 100644 provider/data/properties/data/line_break_name_to_value_v2_marker.rs.data delete mode 100644 provider/data/properties/data/script_name_to_value_v1_marker.rs.data create mode 100644 provider/data/properties/data/script_name_to_value_v2_marker.rs.data rename provider/data/properties/data/{sentence_break_name_to_value_v1_marker.rs.data => sentence_break_name_to_value_v2_marker.rs.data} (63%) rename provider/data/properties/data/{word_break_name_to_value_v1_marker.rs.data => word_break_name_to_value_v2_marker.rs.data} (58%) rename provider/data/properties/stubdata/{bidi_class_name_to_value_v1_marker.rs.data => bidi_class_name_to_value_v2_marker.rs.data} (55%) rename provider/data/properties/stubdata/{canonical_combining_class_name_to_value_v1_marker.rs.data => canonical_combining_class_name_to_value_v2_marker.rs.data} (52%) rename provider/data/properties/{data/east_asian_width_name_to_value_v1_marker.rs.data => stubdata/east_asian_width_name_to_value_v2_marker.rs.data} (65%) rename provider/data/properties/{data/general_category_mask_name_to_value_v1_marker.rs.data => stubdata/general_category_mask_name_to_value_v2_marker.rs.data} (50%) rename provider/data/properties/stubdata/{general_category_name_to_value_v1_marker.rs.data => general_category_name_to_value_v2_marker.rs.data} (54%) rename provider/data/properties/{data/grapheme_cluster_break_name_to_value_v1_marker.rs.data => stubdata/grapheme_cluster_break_name_to_value_v2_marker.rs.data} (62%) rename provider/data/properties/{data/hangul_syllable_type_name_to_value_v1_marker.rs.data => stubdata/hangul_syllable_type_name_to_value_v2_marker.rs.data} (65%) rename provider/data/properties/stubdata/{indic_syllabic_category_name_to_value_v1_marker.rs.data => indic_syllabic_category_name_to_value_v2_marker.rs.data} (56%) rename provider/data/properties/stubdata/{joining_type_name_to_value_v1_marker.rs.data => joining_type_name_to_value_v2_marker.rs.data} (64%) delete mode 100644 provider/data/properties/stubdata/line_break_name_to_value_v1_marker.rs.data create mode 100644 provider/data/properties/stubdata/line_break_name_to_value_v2_marker.rs.data delete mode 100644 provider/data/properties/stubdata/script_name_to_value_v1_marker.rs.data create mode 100644 provider/data/properties/stubdata/script_name_to_value_v2_marker.rs.data rename provider/data/properties/stubdata/{sentence_break_name_to_value_v1_marker.rs.data => sentence_break_name_to_value_v2_marker.rs.data} (63%) rename provider/data/properties/stubdata/{word_break_name_to_value_v1_marker.rs.data => word_break_name_to_value_v2_marker.rs.data} (58%) rename provider/source/data/debug/propnames/from/{GCB@1.json => GCB@2.json} (100%) rename provider/source/data/debug/propnames/from/{InSC@1.json => InSC@2.json} (100%) rename provider/source/data/debug/propnames/from/{SB@1.json => SB@2.json} (100%) rename provider/source/data/debug/propnames/from/{WB@1.json => WB@2.json} (100%) rename provider/source/data/debug/propnames/from/{bc@1.json => bc@2.json} (96%) rename provider/source/data/debug/propnames/from/{ccc@1.json => ccc@2.json} (98%) rename provider/source/data/debug/propnames/from/{ea@1.json => ea@2.json} (100%) rename provider/source/data/debug/propnames/from/{gc@1.json => gc@2.json} (97%) rename provider/source/data/debug/propnames/from/{gcm@1.json => gcm@2.json} (97%) rename provider/source/data/debug/propnames/from/{hst@1.json => hst@2.json} (100%) rename provider/source/data/debug/propnames/from/{jt@1.json => jt@2.json} (100%) rename provider/source/data/debug/propnames/from/{lb@1.json => lb@2.json} (100%) rename provider/source/data/debug/propnames/from/{sc@1.json => sc@2.json} (100%) diff --git a/Cargo.lock b/Cargo.lock index 4e1dc5a1c55..09a09f83d6b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1482,6 +1482,7 @@ dependencies = [ "potential_utf", "serde", "unicode-bidi", + "zerotrie", "zerovec", ] diff --git a/components/experimental/src/transliterate/compile/mod.rs b/components/experimental/src/transliterate/compile/mod.rs index b431afd7755..d25391947bd 100644 --- a/components/experimental/src/transliterate/compile/mod.rs +++ b/components/experimental/src/transliterate/compile/mod.rs @@ -184,7 +184,7 @@ impl RuleCollection { + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -203,7 +203,7 @@ impl RuleCollection { + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -212,11 +212,11 @@ impl RuleCollection { + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, @@ -277,7 +277,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -296,7 +296,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -305,11 +305,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, @@ -438,7 +438,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -457,7 +457,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -466,11 +466,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, diff --git a/components/experimental/src/transliterate/compile/parse.rs b/components/experimental/src/transliterate/compile/parse.rs index 0d05d7bd1cb..48384cef8e3 100644 --- a/components/experimental/src/transliterate/compile/parse.rs +++ b/components/experimental/src/transliterate/compile/parse.rs @@ -287,7 +287,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -306,7 +306,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -315,11 +315,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, diff --git a/components/experimental/src/unicodeset_parse/parse.rs b/components/experimental/src/unicodeset_parse/parse.rs index 5a2bb8a6ece..db2a7e3b1ba 100644 --- a/components/experimental/src/unicodeset_parse/parse.rs +++ b/components/experimental/src/unicodeset_parse/parse.rs @@ -451,7 +451,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -470,7 +470,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -479,11 +479,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, @@ -1582,7 +1582,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -1601,7 +1601,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -1610,11 +1610,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, @@ -1696,7 +1696,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -1715,7 +1715,7 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider @@ -1724,11 +1724,11 @@ where + DataProvider + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider - + DataProvider + + DataProvider + DataProvider + DataProvider + DataProvider, diff --git a/components/properties/Cargo.toml b/components/properties/Cargo.toml index 8a986ce4c99..0f9c4fd99fe 100644 --- a/components/properties/Cargo.toml +++ b/components/properties/Cargo.toml @@ -23,7 +23,8 @@ all-features = true displaydoc = { workspace = true } icu_collections = { workspace = true } icu_provider = { workspace = true, features = ["macros"] } -zerovec = { workspace = true, features = ["derive"] } +zerovec = { workspace = true, features = ["derive", "yoke"] } +zerotrie = { workspace = true, features = ["yoke", "zerofrom"] } databake = { workspace = true, features = ["derive"], optional = true} serde = { workspace = true, features = ["derive", "alloc"], optional = true } icu_locale_core = { workspace = true, features = ["zerovec"] } @@ -39,7 +40,7 @@ icu = { path = "../../components/icu", default-features = false } [features] default = ["compiled_data"] std = ["icu_collections/std", "icu_provider/std"] -serde = ["dep:serde", "icu_locale_core/serde", "potential_utf/serde", "zerovec/serde", "icu_collections/serde", "icu_provider/serde"] -datagen = ["serde", "dep:databake", "potential_utf/databake", "zerovec/databake", "icu_collections/databake", "icu_locale_core/databake"] +serde = ["dep:serde", "icu_locale_core/serde", "potential_utf/serde", "zerovec/serde", "icu_collections/serde", "icu_provider/serde", "zerotrie/serde"] +datagen = ["serde", "dep:databake", "potential_utf/databake", "zerovec/databake", "icu_collections/databake", "icu_locale_core/databake", "zerotrie/databake"] unicode_bidi = [ "dep:unicode-bidi" ] compiled_data = ["dep:icu_properties_data"] diff --git a/components/properties/src/names.rs b/components/properties/src/names.rs index 211492a7ff4..a3b7f07d6bc 100644 --- a/components/properties/src/names.rs +++ b/components/properties/src/names.rs @@ -9,7 +9,7 @@ use icu_collections::codepointtrie::TrieValue; use icu_provider::marker::ErasedMarker; use icu_provider::prelude::*; use yoke::Yokeable; -use zerovec::ule::VarULE; +use zerotrie::cursor::ZeroTrieSimpleAsciiCursor; /// A struct capable of looking up a property value from a string name. /// Access its data by calling [`Self::as_borrowed()`] and using the methods on @@ -252,18 +252,54 @@ impl PropertyParserBorrowed<'static, T> { /// Avoid monomorphizing multiple copies of this function fn get_strict_u16(payload: &PropertyValueNameToEnumMapV1<'_>, name: &str) -> Option { - // NormalizedPropertyName has no invariants so this should be free, but - // avoid introducing a panic regardless - let name = NormalizedPropertyNameStr::parse_byte_slice(name.as_bytes()).ok()?; - payload.map.get_copied(name) + payload.map.get(name).and_then(|i| i.try_into().ok()) } /// Avoid monomorphizing multiple copies of this function fn get_loose_u16(payload: &PropertyValueNameToEnumMapV1<'_>, name: &str) -> Option { - // NormalizedPropertyName has no invariants so this should be free, but - // avoid introducing a panic regardless - let name = NormalizedPropertyNameStr::parse_byte_slice(name.as_bytes()).ok()?; - payload.map.get_copied_by(|p| p.cmp_loose(name)) + fn recurse(mut cursor: ZeroTrieSimpleAsciiCursor, mut rest: &[u8]) -> Option { + if cursor.is_empty() { + return None; + } + + // Skip whitespace, underscore, hyphen in trie. + for skip in [b'\t', b'\n', b'\x0C', b'\r', b' ', 0x0B, b'_', b'-'] { + let mut skip_cursor = cursor.clone(); + skip_cursor.step(skip); + if let Some(r) = recurse(skip_cursor, rest) { + return Some(r); + } + } + + let ascii = loop { + let Some((&a, r)) = rest.split_first() else { + return cursor.take_value(); + }; + rest = r; + + // Skip whitespace, underscore, hyphen in input + if !matches!( + a, + b'\t' | b'\n' | b'\x0C' | b'\r' | b' ' | 0x0B | b'_' | b'-' + ) { + break a; + } + }; + + let mut other_case_cursor = cursor.clone(); + cursor.step(ascii); + other_case_cursor.step(if ascii.is_ascii_lowercase() { + ascii.to_ascii_uppercase() + } else { + ascii.to_ascii_lowercase() + }); + // This uses the call stack as the DFS stack. The recursion will terminate as + // rest's length is strictly shrinking. The call stack's depth is limited by + // name.len(). + recurse(cursor, rest).or_else(|| recurse(other_case_cursor, rest)) + } + + recurse(payload.map.cursor(), name.as_bytes()).and_then(|i| i.try_into().ok()) } /// A struct capable of looking up a property name from a value @@ -692,7 +728,7 @@ macro_rules! impl_value_getter { impl_value_getter! { impl BidiClass { - BidiClassNameToValueV1Marker / SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER; + BidiClassNameToValueV2Marker / SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / BidiClassValueToShortNameV1Marker / SINGLETON_BIDI_CLASS_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / BidiClassValueToLongNameV1Marker / SINGLETON_BIDI_CLASS_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -700,7 +736,7 @@ impl_value_getter! { impl_value_getter! { impl GeneralCategory { - GeneralCategoryNameToValueV1Marker / SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V1_MARKER; + GeneralCategoryNameToValueV2Marker / SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / GeneralCategoryValueToShortNameV1Marker / SINGLETON_GENERAL_CATEGORY_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / GeneralCategoryValueToLongNameV1Marker / SINGLETON_GENERAL_CATEGORY_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -708,13 +744,13 @@ impl_value_getter! { impl_value_getter! { impl GeneralCategoryGroup { - GeneralCategoryMaskNameToValueV1Marker / SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V1_MARKER; + GeneralCategoryMaskNameToValueV2Marker / SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V2_MARKER; } } impl_value_getter! { impl Script { - ScriptNameToValueV1Marker / SINGLETON_SCRIPT_NAME_TO_VALUE_V1_MARKER; + ScriptNameToValueV2Marker / SINGLETON_SCRIPT_NAME_TO_VALUE_V2_MARKER; PropertyScriptToIcuScriptMapV1 / ScriptValueToShortNameV1Marker / SINGLETON_SCRIPT_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / ScriptValueToLongNameV1Marker / SINGLETON_SCRIPT_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -722,7 +758,7 @@ impl_value_getter! { impl_value_getter! { impl HangulSyllableType { - HangulSyllableTypeNameToValueV1Marker / SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER; + HangulSyllableTypeNameToValueV2Marker / SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / HangulSyllableTypeValueToShortNameV1Marker / SINGLETON_HANGUL_SYLLABLE_TYPE_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / HangulSyllableTypeValueToLongNameV1Marker / SINGLETON_HANGUL_SYLLABLE_TYPE_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -730,7 +766,7 @@ impl_value_getter! { impl_value_getter! { impl EastAsianWidth { - EastAsianWidthNameToValueV1Marker / SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER; + EastAsianWidthNameToValueV2Marker / SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / EastAsianWidthValueToShortNameV1Marker / SINGLETON_EAST_ASIAN_WIDTH_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / EastAsianWidthValueToLongNameV1Marker / SINGLETON_EAST_ASIAN_WIDTH_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -738,7 +774,7 @@ impl_value_getter! { impl_value_getter! { impl LineBreak { - LineBreakNameToValueV1Marker / SINGLETON_LINE_BREAK_NAME_TO_VALUE_V1_MARKER; + LineBreakNameToValueV2Marker / SINGLETON_LINE_BREAK_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / LineBreakValueToShortNameV1Marker / SINGLETON_LINE_BREAK_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / LineBreakValueToLongNameV1Marker / SINGLETON_LINE_BREAK_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -746,7 +782,7 @@ impl_value_getter! { impl_value_getter! { impl GraphemeClusterBreak { - GraphemeClusterBreakNameToValueV1Marker / SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V1_MARKER; + GraphemeClusterBreakNameToValueV2Marker / SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / GraphemeClusterBreakValueToShortNameV1Marker / SINGLETON_GRAPHEME_CLUSTER_BREAK_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / GraphemeClusterBreakValueToLongNameV1Marker / SINGLETON_GRAPHEME_CLUSTER_BREAK_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -754,7 +790,7 @@ impl_value_getter! { impl_value_getter! { impl WordBreak { - WordBreakNameToValueV1Marker / SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER; + WordBreakNameToValueV2Marker / SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / WordBreakValueToShortNameV1Marker / SINGLETON_WORD_BREAK_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / WordBreakValueToLongNameV1Marker / SINGLETON_WORD_BREAK_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -762,7 +798,7 @@ impl_value_getter! { impl_value_getter! { impl SentenceBreak { - SentenceBreakNameToValueV1Marker / SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER; + SentenceBreakNameToValueV2Marker / SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / SentenceBreakValueToShortNameV1Marker / SINGLETON_SENTENCE_BREAK_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / SentenceBreakValueToLongNameV1Marker / SINGLETON_SENTENCE_BREAK_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -770,7 +806,7 @@ impl_value_getter! { impl_value_getter! { impl CanonicalCombiningClass { - CanonicalCombiningClassNameToValueV1Marker / SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER; + CanonicalCombiningClassNameToValueV2Marker / SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameSparseMapV1 / CanonicalCombiningClassValueToShortNameV1Marker / SINGLETON_CANONICAL_COMBINING_CLASS_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameSparseMapV1 / CanonicalCombiningClassValueToLongNameV1Marker / SINGLETON_CANONICAL_COMBINING_CLASS_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -778,7 +814,7 @@ impl_value_getter! { impl_value_getter! { impl IndicSyllabicCategory { - IndicSyllabicCategoryNameToValueV1Marker / SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER; + IndicSyllabicCategoryNameToValueV2Marker / SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / IndicSyllabicCategoryValueToShortNameV1Marker / SINGLETON_INDIC_SYLLABIC_CATEGORY_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / IndicSyllabicCategoryValueToLongNameV1Marker / SINGLETON_INDIC_SYLLABIC_CATEGORY_VALUE_TO_LONG_NAME_V1_MARKER; } @@ -786,7 +822,7 @@ impl_value_getter! { impl_value_getter! { impl JoiningType { - JoiningTypeNameToValueV1Marker / SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER; + JoiningTypeNameToValueV2Marker / SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER; PropertyEnumToValueNameLinearMapV1 / JoiningTypeValueToShortNameV1Marker / SINGLETON_JOINING_TYPE_VALUE_TO_SHORT_NAME_V1_MARKER; PropertyEnumToValueNameLinearMapV1 / JoiningTypeValueToLongNameV1Marker / SINGLETON_JOINING_TYPE_VALUE_TO_LONG_NAME_V1_MARKER; } diff --git a/components/properties/src/props.rs b/components/properties/src/props.rs index 910ad9c7d7b..ed08a3b4a6e 100644 --- a/components/properties/src/props.rs +++ b/components/properties/src/props.rs @@ -2912,7 +2912,6 @@ make_unicode_set_property! { mod test_enumerated_property_completeness { use super::*; use alloc::collections::BTreeMap; - use zerovec::ule::VarULE; fn check_enum<'a>( lookup: &crate::provider::names::PropertyValueNameToEnumMapV1<'static>, @@ -2920,21 +2919,13 @@ mod test_enumerated_property_completeness { ) { let mut data: BTreeMap<_, _> = lookup .map - .iter_copied_values() - .map(|(name, value)| { - ( - value, - ( - String::from_utf8(name.as_byte_slice().to_vec()).unwrap(), - "Data", - ), - ) - }) + .iter() + .map(|(name, value)| (value, (name, "Data"))) .collect(); let consts = consts .into_iter() - .map(|(name, value)| (*value, (name.to_string(), "Consts"))); + .map(|(name, value)| (*value as usize, (name.to_string(), "Consts"))); let mut diff = Vec::new(); for t @ (value, _) in consts { @@ -2959,7 +2950,7 @@ mod test_enumerated_property_completeness { #[test] fn test_ea() { check_enum( - crate::provider::Baked::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER, EastAsianWidth::ALL_CONSTS, ); } @@ -2967,7 +2958,7 @@ mod test_enumerated_property_completeness { #[test] fn test_ccc() { check_enum( - crate::provider::Baked::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER, CanonicalCombiningClass::ALL_CONSTS, ); } @@ -2975,7 +2966,7 @@ mod test_enumerated_property_completeness { #[test] fn test_jt() { check_enum( - crate::provider::Baked::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER, JoiningType::ALL_CONSTS, ); } @@ -2983,7 +2974,7 @@ mod test_enumerated_property_completeness { #[test] fn test_insc() { check_enum( - crate::provider::Baked::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER, IndicSyllabicCategory::ALL_CONSTS, ); } @@ -2991,7 +2982,7 @@ mod test_enumerated_property_completeness { #[test] fn test_sb() { check_enum( - crate::provider::Baked::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER, SentenceBreak::ALL_CONSTS, ); } @@ -2999,7 +2990,7 @@ mod test_enumerated_property_completeness { #[test] fn test_wb() { check_enum( - crate::provider::Baked::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER, WordBreak::ALL_CONSTS, ); } @@ -3007,7 +2998,7 @@ mod test_enumerated_property_completeness { #[test] fn test_bc() { check_enum( - crate::provider::Baked::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER, BidiClass::ALL_CONSTS, ); } @@ -3015,7 +3006,7 @@ mod test_enumerated_property_completeness { #[test] fn test_hst() { check_enum( - crate::provider::Baked::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER, + crate::provider::Baked::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER, HangulSyllableType::ALL_CONSTS, ); } diff --git a/components/properties/src/provider.rs b/components/properties/src/provider.rs index e1d3d27a3eb..fcf67ba33d4 100644 --- a/components/properties/src/provider.rs +++ b/components/properties/src/provider.rs @@ -19,24 +19,24 @@ pub mod bidi; pub mod names; pub use names::{ - BidiClassNameToValueV1Marker, BidiClassValueToLongNameV1Marker, - BidiClassValueToShortNameV1Marker, CanonicalCombiningClassNameToValueV1Marker, + BidiClassNameToValueV2Marker, BidiClassValueToLongNameV1Marker, + BidiClassValueToShortNameV1Marker, CanonicalCombiningClassNameToValueV2Marker, CanonicalCombiningClassValueToLongNameV1Marker, - CanonicalCombiningClassValueToShortNameV1Marker, EastAsianWidthNameToValueV1Marker, + CanonicalCombiningClassValueToShortNameV1Marker, EastAsianWidthNameToValueV2Marker, EastAsianWidthValueToLongNameV1Marker, EastAsianWidthValueToShortNameV1Marker, - GeneralCategoryMaskNameToValueV1Marker, GeneralCategoryNameToValueV1Marker, + GeneralCategoryMaskNameToValueV2Marker, GeneralCategoryNameToValueV2Marker, GeneralCategoryValueToLongNameV1Marker, GeneralCategoryValueToShortNameV1Marker, - GraphemeClusterBreakNameToValueV1Marker, GraphemeClusterBreakValueToLongNameV1Marker, - GraphemeClusterBreakValueToShortNameV1Marker, HangulSyllableTypeNameToValueV1Marker, + GraphemeClusterBreakNameToValueV2Marker, GraphemeClusterBreakValueToLongNameV1Marker, + GraphemeClusterBreakValueToShortNameV1Marker, HangulSyllableTypeNameToValueV2Marker, HangulSyllableTypeValueToLongNameV1Marker, HangulSyllableTypeValueToShortNameV1Marker, - IndicSyllabicCategoryNameToValueV1Marker, IndicSyllabicCategoryValueToLongNameV1Marker, - IndicSyllabicCategoryValueToShortNameV1Marker, JoiningTypeNameToValueV1Marker, + IndicSyllabicCategoryNameToValueV2Marker, IndicSyllabicCategoryValueToLongNameV1Marker, + IndicSyllabicCategoryValueToShortNameV1Marker, JoiningTypeNameToValueV2Marker, JoiningTypeValueToLongNameV1Marker, JoiningTypeValueToShortNameV1Marker, - LineBreakNameToValueV1Marker, LineBreakValueToLongNameV1Marker, - LineBreakValueToShortNameV1Marker, ScriptNameToValueV1Marker, ScriptValueToLongNameV1Marker, - ScriptValueToShortNameV1Marker, SentenceBreakNameToValueV1Marker, + LineBreakNameToValueV2Marker, LineBreakValueToLongNameV1Marker, + LineBreakValueToShortNameV1Marker, ScriptNameToValueV2Marker, ScriptValueToLongNameV1Marker, + ScriptValueToShortNameV1Marker, SentenceBreakNameToValueV2Marker, SentenceBreakValueToLongNameV1Marker, SentenceBreakValueToShortNameV1Marker, - WordBreakNameToValueV1Marker, WordBreakValueToLongNameV1Marker, + WordBreakNameToValueV2Marker, WordBreakValueToLongNameV1Marker, WordBreakValueToShortNameV1Marker, }; @@ -79,14 +79,14 @@ const _: () = { impl_ascii_hex_digit_v1_marker!(Baked); impl_basic_emoji_v1_marker!(Baked); impl_bidi_auxiliary_properties_v1_marker!(Baked); - impl_bidi_class_name_to_value_v1_marker!(Baked); + impl_bidi_class_name_to_value_v2_marker!(Baked); impl_bidi_class_v1_marker!(Baked); impl_bidi_class_value_to_long_name_v1_marker!(Baked); impl_bidi_class_value_to_short_name_v1_marker!(Baked); impl_bidi_control_v1_marker!(Baked); impl_bidi_mirrored_v1_marker!(Baked); impl_blank_v1_marker!(Baked); - impl_canonical_combining_class_name_to_value_v1_marker!(Baked); + impl_canonical_combining_class_name_to_value_v2_marker!(Baked); impl_canonical_combining_class_v1_marker!(Baked); impl_canonical_combining_class_value_to_long_name_v1_marker!(Baked); impl_canonical_combining_class_value_to_short_name_v1_marker!(Baked); @@ -103,7 +103,7 @@ const _: () = { impl_default_ignorable_code_point_v1_marker!(Baked); impl_deprecated_v1_marker!(Baked); impl_diacritic_v1_marker!(Baked); - impl_east_asian_width_name_to_value_v1_marker!(Baked); + impl_east_asian_width_name_to_value_v2_marker!(Baked); impl_east_asian_width_v1_marker!(Baked); impl_east_asian_width_value_to_long_name_v1_marker!(Baked); impl_east_asian_width_value_to_short_name_v1_marker!(Baked); @@ -115,20 +115,20 @@ const _: () = { impl_extended_pictographic_v1_marker!(Baked); impl_extender_v1_marker!(Baked); impl_full_composition_exclusion_v1_marker!(Baked); - impl_general_category_mask_name_to_value_v1_marker!(Baked); - impl_general_category_name_to_value_v1_marker!(Baked); + impl_general_category_mask_name_to_value_v2_marker!(Baked); + impl_general_category_name_to_value_v2_marker!(Baked); impl_general_category_v1_marker!(Baked); impl_general_category_value_to_long_name_v1_marker!(Baked); impl_general_category_value_to_short_name_v1_marker!(Baked); impl_graph_v1_marker!(Baked); impl_grapheme_base_v1_marker!(Baked); - impl_grapheme_cluster_break_name_to_value_v1_marker!(Baked); + impl_grapheme_cluster_break_name_to_value_v2_marker!(Baked); impl_grapheme_cluster_break_v1_marker!(Baked); impl_grapheme_cluster_break_value_to_long_name_v1_marker!(Baked); impl_grapheme_cluster_break_value_to_short_name_v1_marker!(Baked); impl_grapheme_extend_v1_marker!(Baked); impl_grapheme_link_v1_marker!(Baked); - impl_hangul_syllable_type_name_to_value_v1_marker!(Baked); + impl_hangul_syllable_type_name_to_value_v2_marker!(Baked); impl_hangul_syllable_type_v1_marker!(Baked); impl_hangul_syllable_type_value_to_long_name_v1_marker!(Baked); impl_hangul_syllable_type_value_to_short_name_v1_marker!(Baked); @@ -139,16 +139,16 @@ const _: () = { impl_ideographic_v1_marker!(Baked); impl_ids_binary_operator_v1_marker!(Baked); impl_ids_trinary_operator_v1_marker!(Baked); - impl_indic_syllabic_category_name_to_value_v1_marker!(Baked); + impl_indic_syllabic_category_name_to_value_v2_marker!(Baked); impl_indic_syllabic_category_v1_marker!(Baked); impl_indic_syllabic_category_value_to_long_name_v1_marker!(Baked); impl_indic_syllabic_category_value_to_short_name_v1_marker!(Baked); impl_join_control_v1_marker!(Baked); - impl_joining_type_name_to_value_v1_marker!(Baked); + impl_joining_type_name_to_value_v2_marker!(Baked); impl_joining_type_v1_marker!(Baked); impl_joining_type_value_to_long_name_v1_marker!(Baked); impl_joining_type_value_to_short_name_v1_marker!(Baked); - impl_line_break_name_to_value_v1_marker!(Baked); + impl_line_break_name_to_value_v2_marker!(Baked); impl_line_break_v1_marker!(Baked); impl_line_break_value_to_long_name_v1_marker!(Baked); impl_line_break_value_to_short_name_v1_marker!(Baked); @@ -167,13 +167,13 @@ const _: () = { impl_quotation_mark_v1_marker!(Baked); impl_radical_v1_marker!(Baked); impl_regional_indicator_v1_marker!(Baked); - impl_script_name_to_value_v1_marker!(Baked); + impl_script_name_to_value_v2_marker!(Baked); impl_script_v1_marker!(Baked); impl_script_value_to_long_name_v1_marker!(Baked); impl_script_value_to_short_name_v1_marker!(Baked); impl_script_with_extensions_property_v1_marker!(Baked); impl_segment_starter_v1_marker!(Baked); - impl_sentence_break_name_to_value_v1_marker!(Baked); + impl_sentence_break_name_to_value_v2_marker!(Baked); impl_sentence_break_v1_marker!(Baked); impl_sentence_break_value_to_long_name_v1_marker!(Baked); impl_sentence_break_value_to_short_name_v1_marker!(Baked); @@ -184,7 +184,7 @@ const _: () = { impl_uppercase_v1_marker!(Baked); impl_variation_selector_v1_marker!(Baked); impl_white_space_v1_marker!(Baked); - impl_word_break_name_to_value_v1_marker!(Baked); + impl_word_break_name_to_value_v2_marker!(Baked); impl_word_break_v1_marker!(Baked); impl_word_break_value_to_long_name_v1_marker!(Baked); impl_word_break_value_to_short_name_v1_marker!(Baked); @@ -264,52 +264,52 @@ pub const MARKERS: &[DataMarkerInfo] = &[ XdigitV1Marker::INFO, XidContinueV1Marker::INFO, XidStartV1Marker::INFO, - BidiClassNameToValueV1Marker::INFO, + BidiClassNameToValueV2Marker::INFO, BidiClassV1Marker::INFO, BidiClassValueToLongNameV1Marker::INFO, BidiClassValueToShortNameV1Marker::INFO, - CanonicalCombiningClassNameToValueV1Marker::INFO, + CanonicalCombiningClassNameToValueV2Marker::INFO, CanonicalCombiningClassV1Marker::INFO, CanonicalCombiningClassValueToLongNameV1Marker::INFO, CanonicalCombiningClassValueToShortNameV1Marker::INFO, - EastAsianWidthNameToValueV1Marker::INFO, + EastAsianWidthNameToValueV2Marker::INFO, EastAsianWidthV1Marker::INFO, EastAsianWidthValueToLongNameV1Marker::INFO, EastAsianWidthValueToShortNameV1Marker::INFO, - GeneralCategoryMaskNameToValueV1Marker::INFO, - GeneralCategoryNameToValueV1Marker::INFO, + GeneralCategoryMaskNameToValueV2Marker::INFO, + GeneralCategoryNameToValueV2Marker::INFO, GeneralCategoryV1Marker::INFO, GeneralCategoryValueToLongNameV1Marker::INFO, GeneralCategoryValueToShortNameV1Marker::INFO, - GraphemeClusterBreakNameToValueV1Marker::INFO, + GraphemeClusterBreakNameToValueV2Marker::INFO, GraphemeClusterBreakV1Marker::INFO, GraphemeClusterBreakValueToLongNameV1Marker::INFO, GraphemeClusterBreakValueToShortNameV1Marker::INFO, - HangulSyllableTypeNameToValueV1Marker::INFO, + HangulSyllableTypeNameToValueV2Marker::INFO, HangulSyllableTypeV1Marker::INFO, HangulSyllableTypeValueToLongNameV1Marker::INFO, HangulSyllableTypeValueToShortNameV1Marker::INFO, - IndicSyllabicCategoryNameToValueV1Marker::INFO, + IndicSyllabicCategoryNameToValueV2Marker::INFO, IndicSyllabicCategoryV1Marker::INFO, IndicSyllabicCategoryValueToLongNameV1Marker::INFO, IndicSyllabicCategoryValueToShortNameV1Marker::INFO, - JoiningTypeNameToValueV1Marker::INFO, + JoiningTypeNameToValueV2Marker::INFO, JoiningTypeV1Marker::INFO, JoiningTypeValueToLongNameV1Marker::INFO, JoiningTypeValueToShortNameV1Marker::INFO, - LineBreakNameToValueV1Marker::INFO, + LineBreakNameToValueV2Marker::INFO, LineBreakV1Marker::INFO, LineBreakValueToLongNameV1Marker::INFO, LineBreakValueToShortNameV1Marker::INFO, - ScriptNameToValueV1Marker::INFO, + ScriptNameToValueV2Marker::INFO, ScriptV1Marker::INFO, ScriptValueToLongNameV1Marker::INFO, ScriptValueToShortNameV1Marker::INFO, - SentenceBreakNameToValueV1Marker::INFO, + SentenceBreakNameToValueV2Marker::INFO, SentenceBreakV1Marker::INFO, SentenceBreakValueToLongNameV1Marker::INFO, SentenceBreakValueToShortNameV1Marker::INFO, - WordBreakNameToValueV1Marker::INFO, + WordBreakNameToValueV2Marker::INFO, WordBreakV1Marker::INFO, WordBreakValueToLongNameV1Marker::INFO, WordBreakValueToShortNameV1Marker::INFO, diff --git a/components/properties/src/provider/names.rs b/components/properties/src/provider/names.rs index 550db25b7c6..1d99c033273 100644 --- a/components/properties/src/provider/names.rs +++ b/components/properties/src/provider/names.rs @@ -12,171 +12,12 @@ //! //! Read more about data providers: [`icu_provider`] -use alloc::boxed::Box; -use core::cmp::Ordering; - use icu_locale_core::subtags::Script; use icu_provider::prelude::*; -use potential_utf::PotentialUtf8; -use zerovec::ule::{NichedOption, VarULE}; -use zerovec::{maps::ZeroMapKV, VarZeroSlice, VarZeroVec, ZeroMap, ZeroVec}; - -/// This is a property name that can be "loose matched" as according to -/// [PropertyValueAliases.txt](https://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt) -/// -/// (matched case-insensitively in ASCII, ignoring underscores, whitespace, and hyphens) -/// -/// This is expected to be ASCII, but we do not rely on this invariant anywhere except during -/// datagen. -/// -/// The Ord impl will sort things using strict equality, but in such a way that all loose-equal items -/// will sort into the same area, such that a map can be searched for both strict and loose equality. -/// -///
-/// 🚧 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. -///
-/// -/// # Examples -/// -/// Using a [`NormalizedPropertyNameStr`] as the key of a [`ZeroMap`]: -/// -/// ``` -/// use icu::properties::provider::names::NormalizedPropertyNameStr; -/// use zerovec::ZeroMap; -/// -/// let map: ZeroMap = [ -/// (NormalizedPropertyNameStr::from_str("A_BC"), 11), -/// (NormalizedPropertyNameStr::from_str("dEf"), 22), -/// (NormalizedPropertyNameStr::from_str("G_H-I"), 33), -/// ] -/// .into_iter() -/// .collect(); -/// -/// let key_approx = NormalizedPropertyNameStr::from_str("AB-C"); -/// let key_exact = NormalizedPropertyNameStr::from_str("A_BC"); -/// -/// // Strict lookup: -/// assert_eq!(None, map.get_copied(key_approx)); -/// assert_eq!(Some(11), map.get_copied(key_exact)); -/// -/// // Loose lookup: -/// assert_eq!(Some(11), map.get_copied_by(|u| u.cmp_loose(key_approx))); -/// assert_eq!(Some(11), map.get_copied_by(|u| u.cmp_loose(key_exact))); -/// ``` -#[derive(PartialEq, Eq)] // VarULE wants these to be byte equality -#[derive(Debug, VarULE)] -#[cfg_attr(feature = "serde", derive(serde::Serialize))] -#[repr(transparent)] -pub struct NormalizedPropertyNameStr(PotentialUtf8); - -/// This impl requires enabling the optional `serde` Cargo feature of the `icu::properties` crate -#[cfg(feature = "serde")] -impl<'de> serde::Deserialize<'de> for Box { - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - >::deserialize(deserializer).map(NormalizedPropertyNameStr::cast_box) - } -} - -/// This impl requires enabling the optional `serde` Cargo feature of the `icu::properties` crate -#[cfg(feature = "serde")] -impl<'de, 'a> serde::Deserialize<'de> for &'a NormalizedPropertyNameStr -where - 'de: 'a, -{ - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - <&PotentialUtf8>::deserialize(deserializer).map(NormalizedPropertyNameStr::cast_ref) - } -} - -impl<'a> ZeroMapKV<'a> for NormalizedPropertyNameStr { - type Container = VarZeroVec<'a, NormalizedPropertyNameStr>; - type Slice = VarZeroSlice; - type GetType = NormalizedPropertyNameStr; - type OwnedType = Box; -} - -/// The Ord/PartialOrd impl will sort things using strict equality, but in such a way that all loose-equal items -/// will sort into the same area, such that a map can be searched for both strict and loose equality. -impl PartialOrd for NormalizedPropertyNameStr { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) - } -} - -/// Normalize a character based on the "loose matching" described in PropertyValueAliases.txt, -/// returning `None` for skippable characters -/// -/// ICU has [code for this][1] (and [during property lookup][2]) which we emulate. -/// In particular, ICU only does normalization within ASCII, which makes sense since character names -/// seem to be only ASCII. -/// -/// [1]: https://github.com/unicode-org/icu/blob/288c4c7555915ce7b1fb675d94ddd495058fc039/icu4c/source/common/propname.cpp#L35 -/// [2]: https://github.com/unicode-org/icu/blob/288c4c7555915ce7b1fb675d94ddd495058fc039/icu4c/source/common/propname.cpp#L226-L230 -fn normalize_char(ch: u8) -> Option { - match ch { - // all ascii whitespace - ch if ch.is_ascii_whitespace() => None, - // underscores, hyphens, and the vertical tab character - // not covered by is_ascii_whitespace() - b'_' | b'-' | 0x0B => None, - // ignore case by lowercasing - ch => Some(ch.to_ascii_lowercase()), - } -} - -/// The Ord impl will sort things using strict equality, but in such a way that all loose-equal items -/// will sort into the same area, such that a map can be searched for both strict and loose equality. -impl Ord for NormalizedPropertyNameStr { - fn cmp(&self, other: &Self) -> Ordering { - let cmp = self.cmp_loose(other); - // When loose equality holds, fall back to strict equality - if cmp == Ordering::Equal { - self.0.cmp(&other.0) - } else { - cmp - } - } -} - -impl NormalizedPropertyNameStr { - /// Perform the loose comparison as defined in [`NormalizedPropertyNameStr`]. - pub fn cmp_loose(&self, other: &Self) -> Ordering { - let self_iter = self.0.iter().copied().filter_map(normalize_char); - let other_iter = other.0.iter().copied().filter_map(normalize_char); - self_iter.cmp(other_iter) - } - - /// Convert a string reference to a [`NormalizedPropertyNameStr`]. - pub const fn from_str(s: &str) -> &Self { - Self::cast_ref(PotentialUtf8::from_str(s)) - } - - /// Convert a [`PotentialUtf8`] reference to a [`NormalizedPropertyNameStr`] reference. - pub const fn cast_ref(value: &PotentialUtf8) -> &Self { - // Safety: repr(transparent) - unsafe { core::mem::transmute(value) } - } - - /// Convert a [`PotentialUtf8`] box to a [`NormalizedPropertyNameStr`] box. - pub const fn cast_box(value: Box) -> Box { - // Safety: repr(transparent) - unsafe { core::mem::transmute(value) } - } - - /// Get a [`NormalizedPropertyNameStr`] box from a byte slice. - pub fn boxed_from_bytes(b: &[u8]) -> Box { - Self::cast_box(PotentialUtf8::from_boxed_bytes(b.into())) - } -} +use zerotrie::ZeroTrieSimpleAscii; +use zerovec::ule::NichedOption; +use zerovec::{VarZeroVec, ZeroMap, ZeroVec}; /// A set of characters and strings which share a particular property value. /// @@ -187,48 +28,47 @@ impl NormalizedPropertyNameStr { /// #[derive(Debug, Clone, PartialEq)] #[icu_provider::data_struct( - marker(BidiClassNameToValueV1Marker, "propnames/from/bc@1", singleton), + marker(BidiClassNameToValueV2Marker, "propnames/from/bc@2", singleton), marker( - CanonicalCombiningClassNameToValueV1Marker, - "propnames/from/ccc@1", + CanonicalCombiningClassNameToValueV2Marker, + "propnames/from/ccc@2", singleton ), - marker(EastAsianWidthNameToValueV1Marker, "propnames/from/ea@1", singleton), + marker(EastAsianWidthNameToValueV2Marker, "propnames/from/ea@2", singleton), marker( - GeneralCategoryMaskNameToValueV1Marker, - "propnames/from/gcm@1", + GeneralCategoryMaskNameToValueV2Marker, + "propnames/from/gcm@2", singleton ), - marker(GeneralCategoryNameToValueV1Marker, "propnames/from/gc@1", singleton), + marker(GeneralCategoryNameToValueV2Marker, "propnames/from/gc@2", singleton), marker( - GraphemeClusterBreakNameToValueV1Marker, - "propnames/from/GCB@1", + GraphemeClusterBreakNameToValueV2Marker, + "propnames/from/GCB@2", singleton ), marker( - HangulSyllableTypeNameToValueV1Marker, - "propnames/from/hst@1", + HangulSyllableTypeNameToValueV2Marker, + "propnames/from/hst@2", singleton ), marker( - IndicSyllabicCategoryNameToValueV1Marker, - "propnames/from/InSC@1", + IndicSyllabicCategoryNameToValueV2Marker, + "propnames/from/InSC@2", singleton ), - marker(JoiningTypeNameToValueV1Marker, "propnames/from/jt@1", singleton), - marker(LineBreakNameToValueV1Marker, "propnames/from/lb@1", singleton), - marker(ScriptNameToValueV1Marker, "propnames/from/sc@1", singleton), - marker(SentenceBreakNameToValueV1Marker, "propnames/from/SB@1", singleton), - marker(WordBreakNameToValueV1Marker, "propnames/from/WB@1", singleton) + marker(JoiningTypeNameToValueV2Marker, "propnames/from/jt@2", singleton), + marker(LineBreakNameToValueV2Marker, "propnames/from/lb@2", singleton), + marker(ScriptNameToValueV2Marker, "propnames/from/sc@2", singleton), + marker(SentenceBreakNameToValueV2Marker, "propnames/from/SB@2", singleton), + marker(WordBreakNameToValueV2Marker, "propnames/from/WB@2", singleton) )] #[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))] #[cfg_attr(feature = "datagen", databake(path = icu_properties::provider::names))] #[cfg_attr(feature = "serde", derive(serde::Deserialize))] -#[yoke(prove_covariance_manually)] pub struct PropertyValueNameToEnumMapV1<'data> { /// A map from names to their value discriminant #[cfg_attr(feature = "serde", serde(borrow))] - pub map: ZeroMap<'data, NormalizedPropertyNameStr, u16>, + pub map: ZeroTrieSimpleAscii>, } /// A mapping of property values to their names. A single instance of this map will only cover diff --git a/provider/data/properties/data/bidi_class_name_to_value_v1_marker.rs.data b/provider/data/properties/data/bidi_class_name_to_value_v2_marker.rs.data similarity index 55% rename from provider/data/properties/data/bidi_class_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/bidi_class_name_to_value_v2_marker.rs.data index c73c0ad77f5..d1db6c8996d 100644 --- a/provider/data/properties/data/bidi_class_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/bidi_class_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 696B[^1] for the singleton data struct +/// * 463B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_bidi_class_name_to_value_v1_marker { +macro_rules! __impl_bidi_class_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b".\0\0\0\0\0\x02\0\x04\0\x11\0\x1E\0\x1F\0!\x001\0A\0C\0E\0G\0I\0X\0j\0}\0\x91\0\x94\0\x95\0\xA2\0\xB9\0\xCE\0\xE4\0\xE7\0\xEA\0\xED\0\xFC\0\xFF\0\x01\x01\x0E\x01!\x01$\x01'\x01=\x01T\x01U\x01b\x01y\x01\x8E\x01\xA4\x01\xA7\x01\xAA\x01\xAD\x01\xAE\x01\xBF\x01\xCA\x01ALANArabic_LetterArabic_NumberBBNBoundary_NeutralCommon_SeparatorCSENESETEuropean_NumberEuropean_SeparatorEuropean_TerminatorFirst_Strong_IsolateFSILLeft_To_RightLeft_To_Right_EmbeddingLeft_To_Right_IsolateLeft_To_Right_OverrideLRELRILRONonspacing_MarkNSMONOther_NeutralParagraph_SeparatorPDFPDIPop_Directional_FormatPop_Directional_IsolateRRight_To_LeftRight_To_Left_EmbeddingRight_To_Left_IsolateRight_To_Left_OverrideRLERLIRLOSSegment_SeparatorWhite_SpaceWS") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\r\0\x05\0\r\0\x05\0\x07\0\x12\0\x12\0\x06\0\x06\0\x02\0\x03\0\x04\0\x02\0\x03\0\x04\0\x13\0\x13\0\0\0\0\0\x0B\0\x14\0\x0C\0\x0B\0\x14\0\x0C\0\x11\0\x11\0\n\0\n\0\x07\0\x10\0\x16\0\x10\0\x16\0\x01\0\x01\0\x0E\0\x15\0\x0F\0\x0E\0\x15\0\x0F\0\x08\0\x08\0\t\0\t\0") }) - }, - }; + pub const SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1lABCEFLNOPRSW\0\0\0\0\0\0\0\0\x01\x01\x01\x1D4Hy\x94\xCF\xE5\xF67r\x84\xC3LNr\x01\x02\x8D\x85abic_\xC2LN\x06etter\x8Dumber\x85\x87\xC2No\x02\x90\x02undary_Neutral\x90\x02\xC2So\x01\x86mmon_Separator\x86\xC4NSTu\x01\x02\x03\x82\x83\x84ropean_\xC3NST\x06\x0Fumber\x82eparator\x83erminator\x84\xC2Si\x03I\x90\x03rst_Strong_Isolate\x90\x03\x80\xC2Re\n\xC3EIO\x01\x03\x8B\x90\x04\x8Cft_To_Right\x80_\xC3EIO\t\x11mbedding\x8Bsolate\x90\x04verride\x8C\xC2So\x03M\x90\x01nspacing_Mark\x90\x01\xC2Nt\x01\x8Aher_Neutral\x8A\xC3Dao\x08\x1A\xC2FI\x02\x90\0\x90\x06ragraph_Separator\x87p_Directional_\xC2FI\x07ormat\x90\0solate\x90\x06\x81\xC2Li\n\xC3EIO\x01\x03\x8E\x90\x05\x8Fght_To_Left\x81_\xC3EIO\t\x11mbedding\x8Esolate\x90\x05verride\x8F\x88egment_Separator\x88\xC2Sh\x01\x89ite_Space\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_bidi_class_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_bidi_class_name_to_value_v1_marker as impl_bidi_class_name_to_value_v1_marker; +pub use __impl_bidi_class_name_to_value_v2_marker as impl_bidi_class_name_to_value_v2_marker; diff --git a/provider/data/properties/data/canonical_combining_class_name_to_value_v1_marker.rs.data b/provider/data/properties/data/canonical_combining_class_name_to_value_v2_marker.rs.data similarity index 52% rename from provider/data/properties/data/canonical_combining_class_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/canonical_combining_class_name_to_value_v2_marker.rs.data index a2a11a0985b..56195905dc5 100644 --- a/provider/data/properties/data/canonical_combining_class_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/canonical_combining_class_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 827B[^1] for the singleton data struct +/// * 479B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_canonical_combining_class_name_to_value_v1_marker { +macro_rules! __impl_canonical_combining_class_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"O\0\0\0\0\0\x01\0\x06\0\x10\0\x1B\0\x1D\0\x1F\0\"\0&\0)\0-\0;\0O\0]\0p\0q\0v\0\x80\0\x8B\0\x8D\0\x8F\0\x94\0\x9A\0\xA0\0\xA5\0\xAB\0\xB0\0\xB6\0\xBC\0\xC1\0\xC7\0\xCD\0\xD3\0\xD8\0\xDD\0\xE2\0\xE7\0\xEC\0\xF1\0\xF6\0\xFB\0\0\x01\x05\x01\n\x01\x0F\x01\x14\x01\x19\x01\x1E\x01#\x01(\x01-\x012\x017\x01<\x01A\x01F\x01K\x01P\x01R\x01T\x01`\x01l\x01p\x01{\x01\x89\x01\x8B\x01\x97\x01\x99\x01\x9A\x01\x9E\x01\xA0\x01\xAD\x01\xAF\x01\xB4\x01\xB6\x01\xBD\x01\xBE\x01\xC3\x01\xC9\x01AAboveAbove_LeftAbove_RightALARATAATARATBATBLAttached_AboveAttached_Above_RightAttached_BelowAttached_Below_LeftBBelowBelow_LeftBelow_RightBLBRCCC10CCC103CCC107CCC11CCC118CCC12CCC122CCC129CCC13CCC130CCC132CCC133CCC14CCC15CCC16CCC17CCC18CCC19CCC20CCC21CCC22CCC23CCC24CCC25CCC26CCC27CCC28CCC29CCC30CCC31CCC32CCC33CCC34CCC35CCC36CCC84CCC91DADBDouble_AboveDouble_BelowHANRHan_ReadingIota_SubscriptISKana_VoicingKVLLeftNKNot_ReorderedNRNuktaOVOverlayRRightViramaVR") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE6\0\xE6\0\xE4\0\xE8\0\xE4\0\xE8\0\xD6\0\xD8\0\xCA\0\xC8\0\xD6\0\xD8\0\xCA\0\xC8\0\xDC\0\xDC\0\xDA\0\xDE\0\xDA\0\xDE\0\n\0g\0k\0\x0B\0v\0\x0C\0z\0\x81\0\r\0\x82\0\x84\0\x85\0\x0E\0\x0F\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1A\0\x1B\0\x1C\0\x1D\0\x1E\0\x1F\0 \0!\0\"\0#\0$\0T\0[\0\xEA\0\xE9\0\xEA\0\xE9\0\x06\0\x06\0\xF0\0\xF0\0\x08\0\x08\0\xE0\0\xE0\0\x07\0\0\0\0\0\x07\0\x01\0\x01\0\xE2\0\xE2\0\t\0\t\0") }) - }, - }; + pub const SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1lABCDHIKLNORV\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01Yz\x110AUel\x86\x91\x99\x91V\xC5LRTbt\x02\x04\x12'\x91T\x91X\xC2AB\x05\x91FR\x91H\x91:L\x918ove\x91V_\xC2LR\x05eft\x91Tight\x91Xtached_\xC2AB\x0Ebove\x91F_Right\x91Helow\x91:_Left\x918\x91L\xC3LRe\x02\x04\x91J\x91Nlow\x91L_\xC2LR\x05eft\x91Jight\x91NCC\xC512389Ai\x85\x88\xCA0123456789\t\r\x16#$%')+\x8A\xC237\x02\x90W\x90[\x8B8\x90f\x8C\xC229\x02\x90j\x90q\x8D\xC3023\x02\x04\x90r\x90t\x90u\x8E\x8F\x90\0\x90\x01\x90\x02\x90\x03\xCA0123456789\x02\x04\x06\x08\n\x0C\x0E\x10\x12\x90\x04\x90\x05\x90\x06\x90\x07\x90\x08\x90\t\x90\n\x90\x0B\x90\x0C\x90\r\xC70123456\x02\x04\x06\x08\n\x0C\x90\x0E\x90\x0F\x90\x10\x90\x11\x90\x12\x90\x13\x90\x144\x90D1\x90K\xC3ABo\x02\x04\x91Z\x91Yuble_\xC2AB\x06bove\x91Zelow\x91Y\xC2Aa\x03NR\x86n_Reading\x86\xC2So\x02\x91`ta_Subscript\x91`\xC2Va\x01\x88na_Voicing\x88\x91Peft\x91P\xC4KRou\x01\x02\x0E\x87\x80t_Reordered\x80kta\x87\xC2Vv\x01\x81erlay\x81\x91Right\x91R\xC2Ri\x01\x89rama\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_canonical_combining_class_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_canonical_combining_class_name_to_value_v1_marker as impl_canonical_combining_class_name_to_value_v1_marker; +pub use __impl_canonical_combining_class_name_to_value_v2_marker as impl_canonical_combining_class_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/east_asian_width_name_to_value_v1_marker.rs.data b/provider/data/properties/data/east_asian_width_name_to_value_v2_marker.rs.data similarity index 65% rename from provider/data/properties/stubdata/east_asian_width_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/east_asian_width_name_to_value_v2_marker.rs.data index 51abb10aeac..39fe9367c87 100644 --- a/provider/data/properties/stubdata/east_asian_width_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/east_asian_width_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 151B[^1] for the singleton data struct +/// * 86B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_east_asian_width_name_to_value_v1_marker { +macro_rules! __impl_east_asian_width_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\n\0\x0B\0\x14\0\x15\0\x1E\0\x1F\0!\0'\0.\0/\0AAmbiguousFFullwidthHHalfwidthNNaNarrowNeutralWWide") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x03\0\x03\0\x02\0\x02\0\0\0\x04\0\x04\0\0\0\x05\0\x05\0") }) - }, - }; + pub const SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC5AFHNW\n\x14\x1E/\x81mbiguous\x81\x83ullwidth\x83\x82alfwidth\x82\x80\xC2ae\x06\x84rrow\x84utral\x80\x85ide\x85") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_east_asian_width_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_east_asian_width_name_to_value_v1_marker as impl_east_asian_width_name_to_value_v1_marker; +pub use __impl_east_asian_width_name_to_value_v2_marker as impl_east_asian_width_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/general_category_mask_name_to_value_v1_marker.rs.data b/provider/data/properties/data/general_category_mask_name_to_value_v2_marker.rs.data similarity index 50% rename from provider/data/properties/stubdata/general_category_mask_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/general_category_mask_name_to_value_v2_marker.rs.data index a96f61b07ff..4899fa9bf6b 100644 --- a/provider/data/properties/stubdata/general_category_mask_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/general_category_mask_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 951B[^1] for the singleton data struct +/// * 744B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_general_category_mask_name_to_value_v1_marker { +macro_rules! __impl_general_category_mask_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"P\0\0\0\0\0\x01\0\r\0\x0F\0\x11\0\"\0$\0)\0+\09\0N\0U\0W\0f\0v\0\x84\0\x89\0\x97\0\xA8\0\xAE\0\xC1\0\xC2\0\xC4\0\xCA\0\xD7\0\xE5\0\xE7\0\xE9\0\xEB\0\xFB\0\xFD\0\xFF\0\0\x01\x04\x01\x0F\x01\x11\x01\x13\x01\x15\x01$\x013\x014\x016\x018\x01:\x01I\x01O\x01_\x01d\x01p\x01|\x01\x8D\x01\x99\x01\x9A\x01\xAD\x01\xAF\x01\xB1\x01\xB3\x01\xB5\x01\xB7\x01\xB9\x01\xC4\x01\xC6\x01\xCB\x01\xD6\x01\xD7\x01\xD9\x01\xE2\x01\xE4\x01\xE6\x01\xE8\x01\xF7\x01\x03\x02\x0C\x02\x12\x02\"\x02,\x02<\x02=\x02?\x02A\x02CCased_LetterCcCfClose_PunctuationCncntrlCoCombining_MarkConnector_PunctuationControlCsCurrency_SymbolDash_PunctuationDecimal_NumberdigitEnclosing_MarkFinal_PunctuationFormatInitial_PunctuationLLCLetterLetter_NumberLine_SeparatorLlLmLoLowercase_LetterLtLuMMarkMath_SymbolMcMeMnModifier_LetterModifier_SymbolNNdNlNoNonspacing_MarkNumberOpen_PunctuationOtherOther_LetterOther_NumberOther_PunctuationOther_SymbolPParagraph_SeparatorPcPdPePfPiPoPrivate_UsePspunctPunctuationSScSeparatorSkSmSoSpace_SeparatorSpacing_MarkSurrogateSymbolTitlecase_LetterUnassignedUppercase_LetterZZlZpZs") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xFA\xFF\xFF\xFF\x0F\0\x10\0\x15\0\0\0\x0F\0\x11\0\xFD\xFF\x16\0\x0F\0\x12\0\x19\0\x13\0\t\0\t\0\x07\0\x1D\0\x10\0\x1C\0\xFE\xFF\xFF\xFF\xFE\xFF\n\0\r\0\x02\0\x04\0\x05\0\x02\0\x03\0\x01\0\xFD\xFF\xFD\xFF\x18\0\x08\0\x07\0\x06\0\x04\0\x1A\0\xFC\xFF\t\0\n\0\x0B\0\x06\0\xFC\xFF\x14\0\xFA\xFF\x05\0\x0B\0\x17\0\x1B\0\xF9\xFF\x0E\0\x16\0\x13\0\x15\0\x1D\0\x1C\0\x17\0\x11\0\x14\0\xF9\xFF\xF9\xFF\xF8\xFF\x19\0\xFB\xFF\x1A\0\x18\0\x1B\0\x0C\0\x08\0\x12\0\xF8\xFF\x03\0\0\0\x01\0\xFB\xFF\r\0\x0E\0\x0C\0") }) - }, - }; + pub const SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1qCDEFILMNOPSTUZcdp\0\0\0\0\0\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02u\x96\xA4\xBF\xD3\x19Sv\xB8\x06Td\x80\x8C\x91\x96\x93\xEFj\xC8acflnosu\r\x0E\x10!\"QSsed_Letter\x93\xEFo\x8F\x90\0ose_Punctuation\x90\x05\x80\x90\x01\xC2mn\x0Ebining_Mark\x93\xEFm\xC2nt\x13ector_Punctuation\x90\x06rol\x8F\x90\x02rrency_Symbol\x90\t\xC2ae\x10sh_Punctuation\x90\x03cimal_Number\x89nclosing_Mark\x87\xC2io\x11nal_Punctuation\x90\rrmat\x90\0nitial_Punctuation\x90\x0C\x93\xEFn\xC8Ceilmotu\x03\x12\x1F !12\x93\xEFotter\x93\xEFn_Number\x8Ane_Separator\x8D\x82\x84\x85wercase_Letter\x82\x83\x81\x93\xEFm\xC5aceno\x12\x13\x14\x15\xC2rt\x04k\x93\xEFmh_Symbol\x90\x08\x88\x87\x86difier_\xC2LS\x06etter\x84ymbol\x90\n\x93\xEFl\xC4dlou\x01\x02\x11\x89\x8A\x8Bnspacing_Mark\x86mber\x93\xEFl\xC2pt\x10en_Punctuation\x90\x04her\x93\xEFj_\xC4LNPS\x06\x0C\x18etter\x85umber\x8Bunctuation\x90\x07ymbol\x90\x0B\x93\xEFi\xCAacdefiorsu\x12\x14\x16\x18\x1A\x1C\x1E)+ragraph_Separator\x8E\x90\x06\x90\x03\x90\x05\x90\r\x90\x0C\x90\x07ivate_Use\x90\x01\x90\x04nctuation\x93\xEFi\x93\xEFh\xC8cekmopuy\x02\x0C\x0E\x10\x12+4\x90\tparator\x93\xEFk\x90\n\x90\x08\x90\x0Bac\xC2ei\x0B_Separator\x8Cng_Mark\x88rrogate\x90\x02mbol\x93\xEFhitlecase_Letter\x83\xC2np\tassigned\x80percase_Letter\x81\x93\xEFk\xC3lps\x01\x02\x8D\x8E\x8Cntrl\x8Figit\x89unct\x93\xEFi") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_general_category_mask_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_general_category_mask_name_to_value_v1_marker as impl_general_category_mask_name_to_value_v1_marker; +pub use __impl_general_category_mask_name_to_value_v2_marker as impl_general_category_mask_name_to_value_v2_marker; diff --git a/provider/data/properties/data/general_category_name_to_value_v1_marker.rs.data b/provider/data/properties/data/general_category_name_to_value_v2_marker.rs.data similarity index 54% rename from provider/data/properties/data/general_category_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/general_category_name_to_value_v2_marker.rs.data index a006635988a..5579bb79ff8 100644 --- a/provider/data/properties/data/general_category_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/general_category_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 792B[^1] for the singleton data struct +/// * 619B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_general_category_name_to_value_v1_marker { +macro_rules! __impl_general_category_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b">\0\0\0\0\0\x02\0\x04\0\x15\0\x17\0\x1C\0\x1E\x003\0:\0<\0K\0[\0i\0n\0|\0\x8D\0\x93\0\xA6\0\xB3\0\xC1\0\xC3\0\xC5\0\xC7\0\xD7\0\xD9\0\xDB\0\xE6\0\xE8\0\xEA\0\xEC\0\xFB\0\n\x01\x0C\x01\x0E\x01\x10\x01\x1F\x01/\x01;\x01G\x01X\x01d\x01w\x01y\x01{\x01}\x01\x7F\x01\x81\x01\x83\x01\x8E\x01\x90\x01\x92\x01\x94\x01\x96\x01\x98\x01\xA7\x01\xB3\x01\xBC\x01\xCC\x01\xD6\x01\xE6\x01\xE8\x01\xEA\x01CcCfClose_PunctuationCncntrlCoConnector_PunctuationControlCsCurrency_SymbolDash_PunctuationDecimal_NumberdigitEnclosing_MarkFinal_PunctuationFormatInitial_PunctuationLetter_NumberLine_SeparatorLlLmLoLowercase_LetterLtLuMath_SymbolMcMeMnModifier_LetterModifier_SymbolNdNlNoNonspacing_MarkOpen_PunctuationOther_LetterOther_NumberOther_PunctuationOther_SymbolParagraph_SeparatorPcPdPePfPiPoPrivate_UsePsScSkSmSoSpace_SeparatorSpacing_MarkSurrogateTitlecase_LetterUnassignedUppercase_LetterZlZpZs") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x0F\0\x10\0\x15\0\0\0\x0F\0\x11\0\x16\0\x0F\0\x12\0\x19\0\x13\0\t\0\t\0\x07\0\x1D\0\x10\0\x1C\0\n\0\r\0\x02\0\x04\0\x05\0\x02\0\x03\0\x01\0\x18\0\x08\0\x07\0\x06\0\x04\0\x1A\0\t\0\n\0\x0B\0\x06\0\x14\0\x05\0\x0B\0\x17\0\x1B\0\x0E\0\x16\0\x13\0\x15\0\x1D\0\x1C\0\x17\0\x11\0\x14\0\x19\0\x1A\0\x18\0\x1B\0\x0C\0\x08\0\x12\0\x03\0\0\0\x01\0\r\0\x0E\0\x0C\0") }) - }, - }; + pub const SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1pCDEFILMNOPSTUZcd\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x02\x02\x02Rs\x81\x9C\xB0\xEB\x1B2q\xAE\xE4\xF4\x10\x19\x1E\xC7cflnosu\x01\x03\x14\x1535\x8F\x90\0ose_Punctuation\x90\x05\x80\x90\x01n\xC2nt\x13ector_Punctuation\x90\x06rol\x8F\x90\x02rrency_Symbol\x90\t\xC2ae\x10sh_Punctuation\x90\x03cimal_Number\x89nclosing_Mark\x87\xC2io\x11nal_Punctuation\x90\rrmat\x90\0nitial_Punctuation\x90\x0C\xC7eilmotu\x0C\x19\x1A\x1B+,tter_Number\x8Ane_Separator\x8D\x82\x84\x85wercase_Letter\x82\x83\x81\xC5aceno\x0B\x0C\r\x0Eth_Symbol\x90\x08\x88\x87\x86difier_\xC2LS\x06etter\x84ymbol\x90\n\xC3dlo\x01\x02\x89\x8A\x8Bnspacing_Mark\x86\xC2pt\x10en_Punctuation\x90\x04her_\xC4LNPS\x06\x0C\x18etter\x85umber\x8Bunctuation\x90\x07ymbol\x90\x0B\xC9acdefiors\x12\x14\x16\x18\x1A\x1C\x1E)ragraph_Separator\x8E\x90\x06\x90\x03\x90\x05\x90\r\x90\x0C\x90\x07ivate_Use\x90\x01\x90\x04\xC6ckmopu\x02\x04\x06\x08!\x90\t\x90\n\x90\x08\x90\x0Bac\xC2ei\x0B_Separator\x8Cng_Mark\x88rrogate\x90\x02itlecase_Letter\x83\xC2np\tassigned\x80percase_Letter\x81\xC3lps\x01\x02\x8D\x8E\x8Cntrl\x8Figit\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_general_category_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_general_category_name_to_value_v1_marker as impl_general_category_name_to_value_v1_marker; +pub use __impl_general_category_name_to_value_v2_marker as impl_general_category_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v1_marker.rs.data b/provider/data/properties/data/grapheme_cluster_break_name_to_value_v2_marker.rs.data similarity index 62% rename from provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/grapheme_cluster_break_name_to_value_v2_marker.rs.data index cfcf8df8cf0..db45618e4ff 100644 --- a/provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/grapheme_cluster_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 295B[^1] for the singleton data struct +/// * 194B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_grapheme_cluster_break_name_to_value_v1_marker { +macro_rules! __impl_grapheme_cluster_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x1C\0\0\0\0\0\x02\0\t\0\x0B\0\r\0\x13\0\x1D\0 \0\"\0,\0.\x004\x007\0E\0F\0H\0J\0M\0R\0T\0[\0m\0o\0q\0|\0}\0~\0\x80\0CNControlCREBE_BaseE_Base_GAZEBGEME_ModifierEXExtendGAZGlue_After_ZwjLLFLVLVTOtherPPPrependRegional_IndicatorRISMSpacingMarkTVXXZWJ") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x02\0\r\0\r\0\x0E\0\x0E\0\x0F\0\x0F\0\x03\0\x03\0\x10\0\x10\0\x04\0\x05\0\x06\0\x07\0\0\0\x0B\0\x0B\0\x0C\0\x0C\0\n\0\n\0\x08\0\t\0\0\0\x11\0") }) - }, - }; + pub const SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xCCCEGLOPRSTVXZ\x0E7LUZe{\x8A\x8B\x8C\x8E\xC3NRo\x01\x02\x81\x82ntrol\x81\xC5BMX_x\x03\x04\x05\x1A\x8DG\x8E\x8F\x83\xC2BM\tase\x8D_GAZ\x8Eodifier\x8Ftend\x83\xC2Al\x03Z\x90\0ue_After_Zwj\x90\0\x84\xC2FV\x01\x85\x86T\x87ther\x80\xC2Pr\x01\x8Bepend\x8B\xC2Ie\x01\x8Cgional_Indicator\x8C\xC2Mp\x01\x8AacingMark\x8A\x88\x89X\x80WJ\x90\x01") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_grapheme_cluster_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_grapheme_cluster_break_name_to_value_v1_marker as impl_grapheme_cluster_break_name_to_value_v1_marker; +pub use __impl_grapheme_cluster_break_name_to_value_v2_marker as impl_grapheme_cluster_break_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v1_marker.rs.data b/provider/data/properties/data/hangul_syllable_type_name_to_value_v2_marker.rs.data similarity index 65% rename from provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/hangul_syllable_type_name_to_value_v2_marker.rs.data index ab930b288bb..24be85195e9 100644 --- a/provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/hangul_syllable_type_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 182B[^1] for the singleton data struct +/// * 116B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_hangul_syllable_type_name_to_value_v1_marker { +macro_rules! __impl_hangul_syllable_type_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\r\0\x0F\0\x1A\0\x1D\0)\0+\09\0:\0G\0H\0LLeading_JamoLVLV_SyllableLVTLVT_SyllableNANot_ApplicableTTrailing_JamoVVowel_Jamo") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x04\0\x04\0\x05\0\x05\0\0\0\0\0\x03\0\x03\0\x02\0\x02\0") }) - }, - }; + pub const SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC4LNTV);I\x81\xC2Ve\x19\x84\xC2T_\x0B\x85_Syllable\x85Syllable\x84ading_Jamo\x81\xC2Ao\x01\x80t_Applicable\x80\x83railing_Jamo\x83\x82owel_Jamo\x82") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_hangul_syllable_type_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_hangul_syllable_type_name_to_value_v1_marker as impl_hangul_syllable_type_name_to_value_v1_marker; +pub use __impl_hangul_syllable_type_name_to_value_v2_marker as impl_hangul_syllable_type_name_to_value_v2_marker; diff --git a/provider/data/properties/data/indic_syllabic_category_name_to_value_v1_marker.rs.data b/provider/data/properties/data/indic_syllabic_category_name_to_value_v2_marker.rs.data similarity index 56% rename from provider/data/properties/data/indic_syllabic_category_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/indic_syllabic_category_name_to_value_v2_marker.rs.data index 6c0c6de7d16..a0291d44741 100644 --- a/provider/data/properties/data/indic_syllabic_category_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/indic_syllabic_category_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 703B[^1] for the singleton data struct +/// * 491B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_indic_syllabic_category_name_to_value_v1_marker { +macro_rules! __impl_indic_syllabic_category_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"$\0\0\0\0\0\x08\0\r\0\"\x003\0<\0J\0Y\0n\0\x89\0\x99\0\xA9\0\xBE\0\xD7\0\xE9\0\xFC\0\x16\x01,\x01;\x01L\x01R\x01b\x01l\x01q\x01w\x01\x84\x01\x89\x01\x94\x01\xA4\x01\xB5\x01\xC0\x01\xC9\x01\xCF\x01\xD6\x01\xDB\x01\xEA\x01AvagrahaBinduBrahmi_Joining_NumberCantillation_MarkConsonantConsonant_DeadConsonant_FinalConsonant_Head_LetterConsonant_Initial_PostfixedConsonant_KillerConsonant_MedialConsonant_PlaceholderConsonant_Preceding_RephaConsonant_PrefixedConsonant_SubjoinedConsonant_Succeeding_RephaConsonant_With_StackerGemination_MarkInvisible_StackerJoinerModifying_LetterNon_JoinerNuktaNumberNumber_JoinerOtherPure_KillerRegister_ShifterSyllable_ModifierTone_LetterTone_MarkViramaVisargaVowelVowel_DependentVowel_Independent") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x02\0\x03\0\x04\0\x05\0\x06\0\x07\0\x08\0\t\0\n\0\x0B\0\x0C\0\r\0\x0E\0\x0F\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\0\0\x1A\0\x1B\0\x1C\0\x1D\0\x1E\0\x1F\0 \0!\0\"\0#\0") }) - }, - }; + pub const SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1nABCGIJMNOPRSTV\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x08$\xD0\xE0\xF2\xF9\n.3?Pbvvagraha\x81\xC2ir\x04ndu\x82ahmi_Joining_Number\x83\xC2ao\x10ntillation_Mark\x84nsonant\x85_\xC9DFHIKMPSW\x04\t\x14%+1Upead\x86inal\x87ead_Letter\x88nitial_Postfixed\x89iller\x8Aedial\x8B\xC2lr\naceholder\x8Ce\xC2cf\x0Ceding_Repha\x8Dixed\x8Eu\xC2bc\x07joined\x8Fceeding_Repha\x90\0ith_Stacker\x90\x01emination_Mark\x90\x02nvisible_Stacker\x90\x03oiner\x90\x04odifying_Letter\x90\x05\xC2ou\nn_Joiner\x90\x06\xC2km\x04ta\x90\x07ber\x90\x08_Joiner\x90\tther\x80ure_Killer\x90\negister_Shifter\x90\x0Byllable_Modifier\x90\x0Cone_\xC2LM\x07etter\x90\rark\x90\x0E\xC2io\x0F\xC2rs\x05ama\x90\x0Farga\x90\x10wel\x90\x11_\xC2DI\nependent\x90\x12ndependent\x90\x13") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_indic_syllabic_category_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_indic_syllabic_category_name_to_value_v1_marker as impl_indic_syllabic_category_name_to_value_v1_marker; +pub use __impl_indic_syllabic_category_name_to_value_v2_marker as impl_indic_syllabic_category_name_to_value_v2_marker; diff --git a/provider/data/properties/data/joining_type_name_to_value_v1_marker.rs.data b/provider/data/properties/data/joining_type_name_to_value_v2_marker.rs.data similarity index 64% rename from provider/data/properties/data/joining_type_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/joining_type_name_to_value_v2_marker.rs.data index 877d5962d63..3ce31283bd8 100644 --- a/provider/data/properties/data/joining_type_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/joining_type_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 177B[^1] for the singleton data struct +/// * 117B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_joining_type_name_to_value_v1_marker { +macro_rules! __impl_joining_type_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\x02\0\x0E\0\x1A\0\x1B\0'\x002\x003\0@\0A\0L\0CDDual_JoiningJoin_CausingLLeft_JoiningNon_JoiningRRight_JoiningTTransparentU") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x02\0\x02\0\x01\0\x03\0\x03\0\0\0\x04\0\x04\0\x05\0\x05\0\0\0") }) - }, - }; + pub const SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC8CDJLNRTU\x01\x0E\x1A'2@L\x81\x82ual_Joining\x82oin_Causing\x81\x83eft_Joining\x83on_Joining\x80\x84ight_Joining\x84\x85ransparent\x85\x80") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_joining_type_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_joining_type_name_to_value_v1_marker as impl_joining_type_name_to_value_v1_marker; +pub use __impl_joining_type_name_to_value_v2_marker as impl_joining_type_name_to_value_v2_marker; diff --git a/provider/data/properties/data/line_break_name_to_value_v1_marker.rs.data b/provider/data/properties/data/line_break_name_to_value_v1_marker.rs.data deleted file mode 100644 index 8b46b3b381e..00000000000 --- a/provider/data/properties/data/line_break_name_to_value_v1_marker.rs.data +++ /dev/null @@ -1,80 +0,0 @@ -// @generated -/// Implement `DataProvider` on the given struct using the data -/// hardcoded in this file. This allows the struct to be used with -/// `icu`'s `_unstable` constructors. -/// -/// Using this implementation will embed the following data in the binary's data segment: -/// * 1007B[^1] for the singleton data struct -/// -/// [^1]: these numbers can be smaller in practice due to linker deduplication -#[doc(hidden)] -#[macro_export] -macro_rules! __impl_line_break_name_to_value_v1_marker { - ($ provider : ty) => { - #[clippy::msrv = "1.71.1"] - const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; - #[clippy::msrv = "1.71.1"] - impl $provider { - #[doc(hidden)] - pub const SINGLETON_LINE_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"[\0\0\0\0\0\x02\0\x04\0\n\0\x18\0$\0&\x000\09\0;\0=\0?\0A\0C\0E\0P\0\\\0f\0s\0\x82\0\x84\0\x86\0\x88\0\x99\0\xAA\0\xAC\0\xBA\0\xC9\0\xE5\0\xF5\0\xF7\0\xF9\0\xFB\0\x01\x01\x03\x01\r\x01\x0F\x01\x1A\x01\x1C\x01 \x01\"\x01$\x011\x013\x015\x01;\x01=\x01H\x01J\x01W\x01b\x01m\x01o\x01q\x01s\x01u\x01w\x01\x80\x01\x8F\x01\x98\x01\x9A\x01\xA4\x01\xA6\x01\xA8\x01\xAF\x01\xB1\x01\xC1\x01\xC3\x01\xD2\x01\xD4\x01\xE2\x01\xE4\x01\xED\x01\xFF\x01\x01\x02\x03\x02\x05\x02\x07\x02\x0C\x02\x15\x02\x17\x02\x1E\x02 \x02\"\x02(\x024\x026\x02A\x02C\x02E\x02H\x02AIAKAksaraAksara_PrebaseAksara_StartALAlphabeticAmbiguousAPASB2BABBBKBreak_AfterBreak_BeforeBreak_BothBreak_SymbolsCarriage_ReturnCBCJCLClose_ParenthesisClose_PunctuationCMCombining_MarkComplex_ContextConditional_Japanese_StarterContingent_BreakCPCREBE_BaseEME_ModifierEXExclamationGLGlueH2H3Hebrew_LetterHLHYHyphenIDIdeographicINInfix_NumericInseparableInseperableISJLJTJVLFLine_FeedMandatory_BreakNext_LineNLNonstarterNSNUNumericOPOpen_PunctuationPOPostfix_NumericPRPrefix_NumericQUQuotationRegional_IndicatorRISASGSPSpaceSurrogateSYUnknownVFVIViramaVirama_FinalWJWord_JoinerXXZWZWJZWSpace") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0+\0+\0,\0-\0\x02\0\x02\0\x01\0,\0-\0\x03\0\x04\0\x05\0\x06\0\x04\0\x05\0\x03\0\x1B\0\n\0\x07\0%\0\x08\0$\0\x08\0\t\0\t\0\x18\0%\0\x07\0$\0\n\0(\0(\0)\0)\0\x0B\0\x0B\0\x0C\0\x0C\0\x1F\0 \0&\0&\0\r\0\r\0\x0E\0\x0E\0\x0F\0\x10\0\x0F\0\x0F\0\x10\0!\0\"\0#\0\x11\0\x11\0\x06\0\x1D\0\x1D\0\x12\0\x12\0\x13\0\x13\0\x14\0\x14\0\x15\0\x15\0\x16\0\x16\0\x17\0\x17\0'\0'\0\x18\0\x19\0\x1A\0\x1A\0\x19\0\x1B\0\0\0.\0/\0/\0.\0\x1E\0\x1E\0\0\0\x1C\0*\0\x1C\0") }) - }, - }; - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { - if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_LINE_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , ITER) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; - ($ provider : ty , DRY) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , DRY , ITER) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; -} -#[doc(inline)] -pub use __impl_line_break_name_to_value_v1_marker as impl_line_break_name_to_value_v1_marker; diff --git a/provider/data/properties/data/line_break_name_to_value_v2_marker.rs.data b/provider/data/properties/data/line_break_name_to_value_v2_marker.rs.data new file mode 100644 index 00000000000..59d939d41cb --- /dev/null +++ b/provider/data/properties/data/line_break_name_to_value_v2_marker.rs.data @@ -0,0 +1,75 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +/// +/// Using this implementation will embed the following data in the binary's data segment: +/// * 780B[^1] for the singleton data struct +/// +/// [^1]: these numbers can be smaller in practice due to linker deduplication +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_line_break_name_to_value_v2_marker { + ($ provider : ty) => { + #[clippy::msrv = "1.71.1"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.71.1"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_LINE_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1uABCEGHIJLMNOPQRSUVWXZ\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02Bs\x04/7\\\x96\xA2\xB1\xC0\xEC\x02+:Rt{\x93\xA4\xA6\xC8IKLPSklm\x01\x03\x04\x06\x08!*\x81\x90\x1B\x82\x90\x1C\x90\x1Dsara\x90\x1B_\xC2PS\x08rebase\x90\x1Ctart\x90\x1Dphabetic\x82biguous\x81\xC52ABKr\x01\x02\x03\x04\x83\x84\x85\x86eak_\xC3ABS\x05\x11fter\x84\xC2eo\x05fore\x85th\x83ymbols\x90\x0B\xC9BJLMPRalo\x01\x03\x04\x05\x07\x08\x164\x87\x90\x15\x88\x89\x90\x14\x8Arriage_Return\x8Aose_P\xC2au\x0Brenthesis\x90\x14nctuation\x88\xC2mn\x1C\xC2bp\x0Bining_Mark\x89lex_Context\x90\x08\xC2dt\x1Aitional_Japanese_Starter\x90\x15ingent_Break\x87\xC5BMX_x\x02\x04\x05\x17\x90\x18\x90\x19\x8B\xC2BM\x05ase\x90\x18odifier\x90\x19clamation\x8B\xC2Ll\x01\x8Cue\x8C\xC623LYey\x02\x04\x06\x07\x14\x90\x0F\x90\x10\x90\x16\x8Dbrew_Letter\x90\x16phen\x8D\xC5DNSdn\x01\x02\x04\x0E\x8E\x8F\x90\0eographic\x8E\xC2fs\x0Cix_Numeric\x90\0ep\xC2ae\x06rable\x8Frable\x8F\xC3LTV\x02\x04\x90\x11\x90\x12\x90\x13\xC2Fi\x02\x90\x01ne_Feed\x90\x01andatory_Break\x86\xC6LSUeou\x02\x04\x06\x0F\x19\x90\r\x90\x02\x90\x03xt_Line\x90\rnstarter\x90\x02meric\x90\x03\xC2Pp\x02\x90\x04en_Punctuation\x90\x04\xC4ORor\x02\x04\x13\x90\x05\x90\x06stfix_Numeric\x90\x05efix_Numeric\x90\x06\xC2Uu\x02\x90\x07otation\x90\x07\xC2Ie\x02\x90\x17gional_Indicator\x90\x17\xC6AGPYpu\x02\x04\x06\x08\r\x90\x08\x90\t\x90\n\x90\x0Bace\x90\nrrogate\x90\tnknown\x80\xC3FIi\x02\x04\x90\x1E\x90\x1Frama\x90\x1F_Final\x90\x1E\xC2Jo\x02\x90\x0Erd_Joiner\x90\x0EX\x80W\x90\x0C\xC2JS\x02\x90\x1Apace\x90\x0C") } } }; + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.id.locale.is_default() { + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_LINE_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , ITER) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; + ($ provider : ty , DRY) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , DRY , ITER) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; +} +#[doc(inline)] +pub use __impl_line_break_name_to_value_v2_marker as impl_line_break_name_to_value_v2_marker; diff --git a/provider/data/properties/data/mod.rs b/provider/data/properties/data/mod.rs index 59aba1a4292..7b7c5641b54 100644 --- a/provider/data/properties/data/mod.rs +++ b/provider/data/properties/data/mod.rs @@ -1,17 +1,17 @@ // @generated -include!("grapheme_cluster_break_name_to_value_v1_marker.rs.data"); -include!("indic_syllabic_category_name_to_value_v1_marker.rs.data"); -include!("sentence_break_name_to_value_v1_marker.rs.data"); -include!("word_break_name_to_value_v1_marker.rs.data"); -include!("bidi_class_name_to_value_v1_marker.rs.data"); -include!("canonical_combining_class_name_to_value_v1_marker.rs.data"); -include!("east_asian_width_name_to_value_v1_marker.rs.data"); -include!("general_category_name_to_value_v1_marker.rs.data"); -include!("general_category_mask_name_to_value_v1_marker.rs.data"); -include!("hangul_syllable_type_name_to_value_v1_marker.rs.data"); -include!("joining_type_name_to_value_v1_marker.rs.data"); -include!("line_break_name_to_value_v1_marker.rs.data"); -include!("script_name_to_value_v1_marker.rs.data"); +include!("grapheme_cluster_break_name_to_value_v2_marker.rs.data"); +include!("indic_syllabic_category_name_to_value_v2_marker.rs.data"); +include!("sentence_break_name_to_value_v2_marker.rs.data"); +include!("word_break_name_to_value_v2_marker.rs.data"); +include!("bidi_class_name_to_value_v2_marker.rs.data"); +include!("canonical_combining_class_name_to_value_v2_marker.rs.data"); +include!("east_asian_width_name_to_value_v2_marker.rs.data"); +include!("general_category_name_to_value_v2_marker.rs.data"); +include!("general_category_mask_name_to_value_v2_marker.rs.data"); +include!("hangul_syllable_type_name_to_value_v2_marker.rs.data"); +include!("joining_type_name_to_value_v2_marker.rs.data"); +include!("line_break_name_to_value_v2_marker.rs.data"); +include!("script_name_to_value_v2_marker.rs.data"); include!("grapheme_cluster_break_value_to_long_name_v1_marker.rs.data"); include!("indic_syllabic_category_value_to_long_name_v1_marker.rs.data"); include!("sentence_break_value_to_long_name_v1_marker.rs.data"); @@ -145,19 +145,19 @@ pub use __make_provider as make_provider; macro_rules! impl_data_provider { ($ provider : ty) => { make_provider!($provider); - impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); - impl_indic_syllabic_category_name_to_value_v1_marker!($provider); - impl_sentence_break_name_to_value_v1_marker!($provider); - impl_word_break_name_to_value_v1_marker!($provider); - impl_bidi_class_name_to_value_v1_marker!($provider); - impl_canonical_combining_class_name_to_value_v1_marker!($provider); - impl_east_asian_width_name_to_value_v1_marker!($provider); - impl_general_category_name_to_value_v1_marker!($provider); - impl_general_category_mask_name_to_value_v1_marker!($provider); - impl_hangul_syllable_type_name_to_value_v1_marker!($provider); - impl_joining_type_name_to_value_v1_marker!($provider); - impl_line_break_name_to_value_v1_marker!($provider); - impl_script_name_to_value_v1_marker!($provider); + impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); + impl_indic_syllabic_category_name_to_value_v2_marker!($provider); + impl_sentence_break_name_to_value_v2_marker!($provider); + impl_word_break_name_to_value_v2_marker!($provider); + impl_bidi_class_name_to_value_v2_marker!($provider); + impl_canonical_combining_class_name_to_value_v2_marker!($provider); + impl_east_asian_width_name_to_value_v2_marker!($provider); + impl_general_category_name_to_value_v2_marker!($provider); + impl_general_category_mask_name_to_value_v2_marker!($provider); + impl_hangul_syllable_type_name_to_value_v2_marker!($provider); + impl_joining_type_name_to_value_v2_marker!($provider); + impl_line_break_name_to_value_v2_marker!($provider); + impl_script_name_to_value_v2_marker!($provider); impl_grapheme_cluster_break_value_to_long_name_v1_marker!($provider); impl_indic_syllabic_category_value_to_long_name_v1_marker!($provider); impl_sentence_break_value_to_long_name_v1_marker!($provider); @@ -271,19 +271,19 @@ macro_rules! impl_any_provider { impl icu_provider::any::AnyProvider for $provider { fn load_any(&self, marker: icu_provider::DataMarkerInfo, req: icu_provider::DataRequest) -> Result { match marker.path.hashed() { - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), diff --git a/provider/data/properties/data/script_name_to_value_v1_marker.rs.data b/provider/data/properties/data/script_name_to_value_v1_marker.rs.data deleted file mode 100644 index b49ff3787ca..00000000000 --- a/provider/data/properties/data/script_name_to_value_v1_marker.rs.data +++ /dev/null @@ -1,80 +0,0 @@ -// @generated -/// Implement `DataProvider` on the given struct using the data -/// hardcoded in this file. This allows the struct to be used with -/// `icu`'s `_unstable` constructors. -/// -/// Using this implementation will embed the following data in the binary's data segment: -/// * 3684B[^1] for the singleton data struct -/// -/// [^1]: these numbers can be smaller in practice due to linker deduplication -#[doc(hidden)] -#[macro_export] -macro_rules! __impl_script_name_to_value_v1_marker { - ($ provider : ty) => { - #[clippy::msrv = "1.71.1"] - const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; - #[clippy::msrv = "1.71.1"] - impl $provider { - #[doc(hidden)] - pub const SINGLETON_SCRIPT_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"h\x01\0\0\0\0\x05\0\t\0\r\0\x11\0\x15\0*\0.\x004\08\0@\0D\0H\0O\0S\0W\0_\0c\0h\0l\0u\0z\0~\0\x82\0\x89\0\x92\0\x96\0\x9A\0\x9E\0\xA6\0\xAA\0\xB0\0\xB4\0\xBB\0\xBF\0\xC7\0\xCB\0\xD0\0\xD4\0\xE7\0\xEB\0\xEF\0\xF5\0\x07\x01\r\x01\x11\x01\x15\x01\x1D\x01'\x01+\x01/\x015\x019\x01?\x01C\x01G\x01P\x01W\x01c\x01k\x01o\x01s\x01z\x01~\x01\x88\x01\x8C\x01\x97\x01\x9B\x01\xA0\x01\xA4\x01\xA8\x01\xB0\x01\xB4\x01\xB8\x01\xBC\x01\xD0\x01\xD4\x01\xDB\x01\xDF\x01\xE6\x01\xEA\x01\xF2\x01\xF6\x01\xFA\x01\x02\x02\x06\x02\x10\x02\x14\x02\x18\x02\x1C\x02\"\x02&\x02-\x022\x026\x02>\x02B\x02O\x02W\x02[\x02^\x02b\x02f\x02l\x02p\x02\x7F\x02\x83\x02\x87\x02\x8B\x02\x92\x02\x96\x02\x9C\x02\xA0\x02\xA6\x02\xAA\x02\xB2\x02\xB6\x02\xBA\x02\xBE\x02\xC2\x02\xC6\x02\xD6\x02\xDA\x02\xE3\x02\xF8\x02\x0E\x03\x12\x03\x16\x03\x1A\x03\"\x03&\x03*\x030\x034\x038\x03?\x03G\x03[\x03_\x03g\x03k\x03u\x03\x88\x03\x8D\x03\x91\x03\x95\x03\x9B\x03\xA4\x03\xA8\x03\xAC\x03\xB0\x03\xB4\x03\xB8\x03\xBC\x03\xBF\x03\xC3\x03\xC7\x03\xCB\x03\xD0\x03\xD4\x03\xD8\x03\xDE\x03\xE2\x03\xE7\x03\xEB\x03\xEF\x03\xF7\x03\xFF\x03\x03\x04\x07\x04\x0B\x04\x11\x04\x15\x04\x1B\x04#\x04'\x04+\x042\x04;\x04?\x04F\x04J\x04T\x04X\x04_\x04l\x04p\x04{\x04\x7F\x04\x8B\x04\x8F\x04\x9C\x04\xA0\x04\xA4\x04\xB4\x04\xC8\x04\xCC\x04\xD0\x04\xD4\x04\xD8\x04\xE1\x04\xE5\x04\xE8\x04\xEC\x04\xF0\x04\xF4\x04\xFB\x04\x02\x05\x06\x05\x0F\x05\x13\x05\x1E\x05\"\x05-\x051\x055\x059\x05D\x05H\x05K\x05O\x05S\x05X\x05n\x05r\x05w\x05\x7F\x05\x83\x05\x90\x05\x9A\x05\xAB\x05\xB5\x05\xC0\x05\xCB\x05\xDC\x05\xE6\x05\xF0\x05\xF5\x05\xF9\x05\xFD\x05\x02\x06\x06\x06\n\x06\x11\x06\x15\x06!\x06%\x06.\x062\x06=\x06A\x06E\x06M\x06Q\x06U\x06Y\x06]\x06g\x06k\x06o\x06~\x06\x82\x06\x86\x06\x8C\x06\x90\x06\x94\x06\x98\x06\x9D\x06\xA1\x06\xAA\x06\xAE\x06\xB2\x06\xB6\x06\xBA\x06\xC4\x06\xC8\x06\xCF\x06\xD6\x06\xDA\x06\xDE\x06\xE2\x06\xE9\x06\xF4\x06\xF8\x06\xFC\x06\x03\x07\x07\x07\x0E\x07\x12\x07\x16\x07\"\x07&\x07-\x071\x07:\x07>\x07J\x07N\x07R\x07X\x07\\\x07`\x07g\x07k\x07s\x07y\x07\x81\x07\x89\x07\x8D\x07\x92\x07\x96\x07\x9A\x07\x9F\x07\xA3\x07\xA7\x07\xAD\x07\xB3\x07\xB7\x07\xBB\x07\xC1\x07\xC5\x07\xC9\x07\xCD\x07\xD1\x07\xD7\x07\xDB\x07\xE2\x07\xE6\x07\xEE\x07\xF2\x07\xF9\x07\xFD\x07\x01\x08\x05\x08\r\x08\x14\x08\x17\x08\x1B\x08\x1F\x08#\x08+\x081\x085\x08@\x08D\x08H\x08L\x08P\x08T\x08Z\x08\\\x08`\x08p\x08t\x08x\x08|\x08\x80\x08\x84\x08\x88\x08\x8C\x08AdlamAdlmAfakAghbAhomAnatolian_HieroglyphsArabArabicAranArmenianArmiArmnAvestanAvstBaliBalineseBamuBamumBassBassa_VahBatakBatkBengBengaliBhaiksukiBhksBlisBopoBopomofoBrahBrahmiBraiBrailleBugiBugineseBuhdBuhidCakmCanadian_AboriginalCansCariCarianCaucasian_AlbanianChakmaChamCherCherokeeChorasmianChrsCirtCommonCoptCopticCpmnCprtCuneiformCypriotCypro_MinoanCyrillicCyrlCyrsDeseretDevaDevanagariDiakDives_AkuruDogrDograDsrtDuplDuployanEgydEgyhEgypEgyptian_HieroglyphsElbaElbasanElymElymaicEthiEthiopicGeokGeorGeorgianGlagGlagoliticGongGonmGothGothicGranGranthaGreekGrekGujaratiGujrGunjala_GondiGurmukhiGuruHanHanbHangHangulHaniHanifi_RohingyaHanoHansHantHanunooHatrHatranHebrHebrewHiraHiraganaHluwHmngHmnpHrktHungImperial_AramaicIndsInheritedInscriptional_PahlaviInscriptional_ParthianItalJamoJavaJavaneseJpanJurcKaithiKaliKanaKannadaKatakanaKatakana_Or_HiraganaKawiKayah_LiKharKharoshthiKhitan_Small_ScriptKhmerKhmrKhojKhojkiKhudawadiKitsKndaKoreKpelKthiLanaLaoLaooLatfLatgLatinLatnLepcLepchaLimbLimbuLinaLinbLinear_ALinear_BLisuLomaLyciLycianLydiLydianMahajaniMahjMakaMakasarMalayalamMandMandaicManiManichaeanMarcMarchenMasaram_GondiMayaMedefaidrinMedfMeetei_MayekMendMende_KikakuiMercMeroMeroitic_CursiveMeroitic_HieroglyphsMiaoMlymModiMongMongolianMoonMroMrooMteiMultMultaniMyanmarMymrNabataeanNagmNag_MundariNandNandinagariNarbNbatNewaNew_Tai_LueNkgbNkoNkooNshuNushuNyiakeng_Puachue_HmongOgamOghamOl_ChikiOlckOld_HungarianOld_ItalicOld_North_ArabianOld_PermicOld_PersianOld_SogdianOld_South_ArabianOld_TurkicOld_UyghurOriyaOrkhOryaOsageOsgeOsmaOsmanyaOugrPahawh_HmongPalmPalmyrenePaucPau_Cin_HauPermPhagPhags_PaPhliPhlpPhlvPhnxPhoenicianPlrdPrtiPsalter_PahlaviQaacQaaiRejangRjngRohgRoroRunicRunrSamaritanSamrSaraSarbSaurSaurashtraSgnwSharadaShavianShawShrdSiddSiddhamSignWritingSindSinhSinhalaSogdSogdianSogoSoraSora_SompengSoyoSoyomboSundSundaneseSyloSyloti_NagriSyrcSyreSyriacSyrjSyrnTagalogTagbTagbanwaTai_LeTai_ThamTai_VietTakrTakriTaleTaluTamilTamlTangTangsaTangutTavtTeluTeluguTengTfngTglgThaaThaanaThaiTibetanTibtTifinaghTirhTirhutaTnsaTotoUgarUgariticUnknownVaiVaiiVispVithVithkuqiWanchoWaraWarang_CitiWchoWoleXpeoXsuxYeziYezidiYiYiiiZanabazar_SquareZanbZinhZmthZsyeZsymZxxxZyyyZzzz") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xA7\0\xA7\0\x93\0\x9F\0\xA1\0\x9C\0\x02\0\x02\0\xC8\0\x03\0t\0\x03\0u\0u\0>\0>\0\x82\0\x82\0\x86\0\x86\0?\0?\0\x04\0\x04\0\xA8\0\xA8\0@\0\x05\0\x05\0A\0A\0.\0.\x007\x007\0,\0,\0v\0(\0(\0h\0h\0\x9F\0v\0B\0\x06\0\x06\0\xBD\0\xBD\0C\0\0\0\x07\0\x07\0\xC1\0/\0e\0/\0\xC1\0\x08\0\x08\0D\0\t\0\n\0\n\0\xBE\0\xBE\0\xB2\0\xB2\0\t\0\x87\0\x87\0E\0F\0G\0G\0\x88\0\x88\0\xB9\0\xB9\0\x0B\0\x0B\0H\0\x0C\0\x0C\08\08\0\xB3\0\xAF\0\r\0\r\0\x89\0\x89\0\x0E\0\x0E\0\x0F\0\x0F\0\xB3\0\x10\0\x10\0\x11\0\xAC\0\x12\0\x12\0\x11\0\xB6\0+\0I\0J\0+\0\xA2\0\xA2\0\x13\0\x13\0\x14\0\x14\0\x9C\0K\0\xBA\x006\0L\0t\0M\0\x01\0z\0}\0\x1E\0\xAD\0N\0N\0i\0\x94\0x\0O\0\x16\0\x15\0\x16\x006\0\xC6\0O\09\09\0\xBF\0\x17\0\x17\0\x9D\0\x9D\0\x91\0\xBF\0\x15\0w\0\x8A\0x\0j\0\x18\0\x18\0P\0Q\0\x19\0\x19\0R\0R\x000\x000\0S\x001\0S\x001\0\x83\0\x8B\0k\0k\0l\0l\0\xA0\0\xA0\0\xB4\0\xB4\0\x1A\0T\0T\0y\0y\0\xA9\0\xA9\0\xAF\0U\0\xB5\0\xB5\0s\0\x8C\0\x8C\0\x8D\0V\0\x8D\0V\0\\\0\x1A\0\xA3\0\x1B\0\x1B\0r\0\x95\0\x95\0s\0\xA4\0\xA4\0\x1C\0\x1C\0\x8F\0\xC7\0\xC7\0\xBB\0\xBB\0\x8E\0\x8F\0\xAA\0;\0\x84\0W\0W\0\x96\0\x96\0\xBA\0\x1D\0\x1D\0m\0m\0L\0\x1E\0\x8E\0Y\0=\0\xB8\0\x85\0X\0\xC2\0\x1F\0X\0\x1F\0\xAB\0\xAB\x002\x002\0\xC2\0K\0\x90\0\x90\0\xA5\0\xA5\0Y\0Z\0Z\0z\0{\0|\0[\0[\0\\\0}\0{\0\x07\0\x01\0n\0n\0\xB6\0]\0 \0 \0~\0~\0^\0\x85\0o\0o\0p\0\x97\x003\x003\0\x97\0\xA6\0\xA6\0p\0\x91\0!\0!\0\xB7\0\xB7\0\xB8\0\x98\0\x98\0\xB0\0\xB0\0q\0q\0:\0:\0\"\0_\0\"\0`\0a\0*\0-\0-\x004\0j\0\x7F\0\x99\0\x99\x004\0;\0#\0#\0\x9A\0\xC3\0\x9A\0\x7F\0$\0$\0b\0<\0*\0%\0%\0&\0'\0'\0<\0\x9E\0\x9E\0\xC3\0\xC4\x005\x005\0g\0c\0c\0d\0\xC5\0\xC5\0\xBC\0\x92\0\x92\0\xBC\0\x9B\0=\0e\0\xC0\0\xC0\0)\0)\0\xB1\0\xB1\0\x01\0\x80\0\xAE\0\x81\0f\0\0\0g\0") }) - }, - }; - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { - if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SCRIPT_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , ITER) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; - ($ provider : ty , DRY) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , DRY , ITER) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; -} -#[doc(inline)] -pub use __impl_script_name_to_value_v1_marker as impl_script_name_to_value_v1_marker; diff --git a/provider/data/properties/data/script_name_to_value_v2_marker.rs.data b/provider/data/properties/data/script_name_to_value_v2_marker.rs.data new file mode 100644 index 00000000000..e85e74323aa --- /dev/null +++ b/provider/data/properties/data/script_name_to_value_v2_marker.rs.data @@ -0,0 +1,75 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +/// +/// Using this implementation will embed the following data in the binary's data segment: +/// * 2512B[^1] for the singleton data struct +/// +/// [^1]: these numbers can be smaller in practice due to linker deduplication +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_script_name_to_value_v2_marker { + ($ provider : ty) => { + #[clippy::msrv = "1.71.1"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.71.1"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_SCRIPT_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1yABCDEGHIJKLMNOPQRSTUVWXYZ\0\0\x01\x01\x02\x02\x02\x03\x03\x04\x04\x05\x05\x06\x07\x07\x07\x08\x08\x08\x08\t\t\tb\xE4\x99\xDA\x1B\x8A\xFCDb\x01lg\xE2\x92\x0C\x14:\n\xBF\xD4\xEE\x11\x1D/\xC7dfghnrv\n\x0E\x12\x16+Gl\xC2am\x03m\x91\x17\x91\x17ak\x91\x03hb\x91\x0Fom\x91\x11atolian_Hieroglyphs\x91\x0C\xC2am\n\xC2bn\x04\x82ic\x82\x918\xC3ein\x05\x07nian\x83\x90d\x83\xC2es\x06stan\x90et\x90e\xC7aehloru*1@DL^\xC4lmst\t\x0F\x19i\x90.nese\x90.u\x90rm\x90rs\x90va_Vah\x90v\xC2ak\x03k\x90/\x90/ng\x84ali\x84\xC2ak\x08iksuki\x91\x18s\x91\x18is\x900po\x85mofo\x85a\xC2hi\x06\x901mi\x901\x90\x1Elle\x90\x1E\xC2gh\ti\x90'nese\x90'\xC2di\x02\x90\x1Cd\x90\x1C\xC7ahiopuy:_cpz\x83\xC4knru\x03\x1A!m\x90f\xC2as\x11dian_Aboriginal\x90\x18\x90\x18i\x90Xan\x90Xcasian_Albanian\x91\x0F\xC4aeor\n\x11\x1A\xC2km\x04ma\x90f\x902r\x86okee\x86rasmian\x91-s\x91-rt\x903\xC2mp\x04mon\x80t\x87ic\x87\xC2mr\x03n\x911t\x90\x1Fneiform\x90U\xC2pr\x12r\xC2io\x04ot\x90\x1F_Minoan\x911\xC3ils\x05\x06llic\x88\x88\x904\xC5eiosu\x12#*-\xC2sv\x05eret\x89a\x8Anagari\x8A\xC2av\x03k\x91.es_Akuru\x91.gr\x91\"a\x91\"rt\x89pl\x90woyan\x90w\xC3glt\x1F3y\xC3dhp\x02\x04\x905\x906\x907tian_Hieroglyphs\x907\xC2by\x08a\x90xsan\x90xm\x91)aic\x91)hi\x8Bopic\x8B\xC5eloru\r\x19*=o\xC2kr\x02\x908\x8Cgian\x8Cag\x90(olitic\x90(\xC2nt\x08\xC2gm\x02\x91#\x91\x1Fh\x8Dic\x8D\xC2ae\x08n\x90ytha\x90y\xC2ek\x02k\x8E\x8E\xC3jnr\n\x16\xC2ar\x05rati\x8F\x8Fjala_Gondi\x91#\xC2mu\x06ukhi\x90\0\x90\0\xC7aeilmru=EOS\\`\xC2nt2\x90\x01\xC7bgiostu\x02\x08\x17\x19\x1B\x1D\x91\x1C\x90\x02ul\x90\x02\x90\x01fi_Rohingya\x91&\x90\x1B\x909\x90:noo\x90\x1Br\x91\x12an\x91\x12br\x90\x03ew\x90\x03ra\x90\x04gana\x90\x04uw\x91\x0Cn\xC2gp\x02\x90;\x91*kt\x90&ng\x90<\xC3mnt\x10>perial_Aramaic\x90d\xC3dhs\x03\ns\x90=erited\x81criptional_Pa\xC2hr\x06lavi\x90jthian\x90mal\x90\x0E\xC3apu\x10\x14\xC2mv\x03o\x91\x1Da\x90>nese\x90>an\x90Yrc\x91\x04\xC7ahinopt>}\x81\x85\x89\x8D\xC6ilntwy\x05\x08\x13(+thi\x90hi\x90?\xC2an\x02\x90\x06ada\x90\x05akana\x90\x06_Or_Hiragana\x90&i\x916ah_Li\x90?\xC5aimou\x0B\x1D&-r\x90)oshthi\x90)tan_Small_Script\x91/\xC2er\x03r\x90\x07\x90\x07j\x91\rki\x91\rdawadi\x91\x01ts\x91/da\x90\x05re\x90gel\x90zhi\x90h\xC5aeioy\x1F'KO\xC3not\x03\x08a\x90Z\x90\x08o\x90\x08\xC4fgin\x02\x04\x07\x90@\x90An\x90\t\x90\tpc\x90Bha\x90B\xC3mns\x06\x1Bb\x90 u\x90 \xC3abe\x02\x04\x90C\x90!ar_\xC2AB\x02\x90C\x90!u\x90sma\x90{\xC2cd\x07i\x90[an\x90[i\x90\\an\x90\\\xC9aeilortuyV\xAB\xAF\xB3\xC9\xCF\xD3\xDC\xC7hklnrsy\x0C\x14\x1C19E\xC2aj\x06jani\x91\x10\x91\x10a\x91$sar\x91$ayalam\x90\n\xC2di\x07\x90Daic\x90D\x90ichaean\x90ic\x91\x19hen\x91\x19aram_Gondi\x91\x1Fa\x90E\xC4denr\x0F\x1A(\xC2ef\tfaidrin\x91%\x91%tei_Mayek\x90cd\x90|e_Kikakui\x90|\xC2co\x02\x90}\x90Fitic_\xC2CH\x08ursive\x90}ieroglyphs\x90Fao\x90Lym\x90\n\xC3dno\x03\ri\x91\x13g\x90\x0Bolian\x90\x0Bn\x90bo\x91\x05o\x91\x05ei\x90clt\x91\x14ani\x91\x14\xC2am\x06nmar\x90\x0Cr\x90\x0C\xC7abeksuy.2BNRW\xC4bgnr\x08\x17#ataean\x90\x7F\xC2_m\tMundari\x917\x917d\x91+inagari\x91+b\x90~at\x90\x7Fw\xC2_a\tTai_Lue\x90+\x91\x1A\xC2go\x03b\x90t\x90Go\x90Ghu\x91\x06shu\x91\x06iakeng_Puachue_Hmong\x91*\xC5glrsu\x0B}\x8D\xA2\xC2ah\x03m\x90\ram\x90\r\xC3_cd\x07\nChiki\x90]k\x90]_\xC7HINPSTU\n\x11\x1F.ELungarian\x90 for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.id.locale.is_default() { + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SCRIPT_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , ITER) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; + ($ provider : ty , DRY) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , DRY , ITER) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; +} +#[doc(inline)] +pub use __impl_script_name_to_value_v2_marker as impl_script_name_to_value_v2_marker; diff --git a/provider/data/properties/data/sentence_break_name_to_value_v1_marker.rs.data b/provider/data/properties/data/sentence_break_name_to_value_v2_marker.rs.data similarity index 63% rename from provider/data/properties/data/sentence_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/sentence_break_name_to_value_v2_marker.rs.data index 8a5c52d64bb..0b08bb3bdd9 100644 --- a/provider/data/properties/data/sentence_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/sentence_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 264B[^1] for the singleton data struct +/// * 164B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_sentence_break_name_to_value_v1_marker { +macro_rules! __impl_sentence_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x1C\0\0\0\0\0\x02\0\x07\0\t\0\x0E\0\x10\0\x12\0\x18\0\x1A\0 \0\"\0$\0&\0+\0-\x004\0;\0@\0B\0K\0M\0P\0R\0T\0V\0[\0]\0b\0ATATermCLCloseCREXExtendFOFormatLELFLOLowerNUNumericOLetterOtherSCSContinueSESepSPSpSTSTermUPUpperXX") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x02\0\x02\0\x0B\0\x0C\0\x0C\0\x03\0\x03\0\x06\0\r\0\x04\0\x04\0\x05\0\x05\0\x06\0\0\0\x0E\0\x0E\0\x07\0\x07\0\x08\0\x08\0\t\0\t\0\n\0\n\0\0\0") }) - }, - }; + pub const SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xCAACEFLNOSUX\x06\x12\x1C&5@NmvT\x81erm\x81\xC3LRl\x01\x02\x82\x8Bose\x82\xC2Xx\x01\x8Ctend\x8C\xC2Oo\x01\x83rmat\x83\xC4EFOo\x01\x02\x03\x86\x8D\x84wer\x84\xC2Uu\x01\x85meric\x85\xC2Lt\x06etter\x86her\x80\xC6CEPTep\t\n\x0B\x10\x12\x8Eontinue\x8E\x87\x88\x89erm\x89p\x87\x88\xC2Pp\x01\x8Aper\x8AX\x80") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_sentence_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_sentence_break_name_to_value_v1_marker as impl_sentence_break_name_to_value_v1_marker; +pub use __impl_sentence_break_name_to_value_v2_marker as impl_sentence_break_name_to_value_v2_marker; diff --git a/provider/data/properties/data/word_break_name_to_value_v1_marker.rs.data b/provider/data/properties/data/word_break_name_to_value_v2_marker.rs.data similarity index 58% rename from provider/data/properties/data/word_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/data/word_break_name_to_value_v2_marker.rs.data index 5fae824954a..fbd45c3992d 100644 --- a/provider/data/properties/data/word_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/data/word_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 447B[^1] for the singleton data struct +/// * 332B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_word_break_name_to_value_v1_marker { +macro_rules! __impl_word_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b")\0\0\0\0\0\x07\0\t\0\x15\0\x17\0\x19\0\x1F\0)\0,\0.\08\0:\0@\0L\0N\0T\0W\0e\0r\0t\0v\0~\0\x80\0\x82\0\x84\0\x8D\0\x93\0\x9C\0\x9E\0\xA0\0\xA7\0\xA9\0\xAB\0\xB2\0\xB7\0\xC9\0\xCB\0\xD7\0\xD9\0\xE2\0\xE4\0ALetterCRDouble_QuoteDQEBE_BaseE_Base_GAZEBGEME_ModifierEXExtendExtendNumLetFOFormatGAZGlue_After_ZwjHebrew_LetterHLKAKatakanaLELFMBMidLetterMidNumMidNumLetMLMNNewlineNLNUNumericOtherRegional_IndicatorRISingle_QuoteSQWSegSpaceXXZWJ") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x08\0\x10\0\x10\0\x11\0\x11\0\x12\0\x12\0\x13\0\x13\0\x07\0\t\0\x07\0\x02\0\x02\0\x14\0\x14\0\x0E\0\x0E\0\x03\0\x03\0\x01\0\n\0\x0B\0\x04\0\x05\0\x0B\0\x04\0\x05\0\x0C\0\x0C\0\x06\0\x06\0\0\0\r\0\r\0\x0F\0\x0F\0\x16\0\0\0\x15\0") }) - }, - }; + pub const SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1qACDEFGHKLMNORSWXZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\t\x1BQ[p\x81\x8D\x93\xB0\xC6\xCB\xE1\xF1\xFB\xFDLetter\x81R\x88\xC2Qo\x02\x90\0uble_Quote\x90\0\xC5BMX_x\x05\x07\x08 \x90\x01G\x90\x02\x90\x03\x87\xC2BM\x0Base\x90\x01_GAZ\x90\x02odifier\x90\x03tend\x89NumLet\x87\xC2Oo\x01\x82rmat\x82\xC2Al\x03Z\x90\x04ue_After_Zwj\x90\x04\xC2Le\x01\x8Ebrew_Letter\x8E\xC2Aa\x01\x83takana\x83\xC2EF\x01\x81\x8A\xC4BLNi\x01\x02\x03\x8B\x84\x85d\xC2LN\x06etter\x84um\x85Let\x8B\xC4LUeu\x01\x02\x08\x8C\x86wline\x8Cmeric\x86ther\x80\xC2Ie\x01\x8Dgional_Indicator\x8D\xC2Qi\x01\x8Fngle_Quote\x8FSegSpace\x90\x06X\x80WJ\x90\x05") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_word_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_word_break_name_to_value_v1_marker as impl_word_break_name_to_value_v1_marker; +pub use __impl_word_break_name_to_value_v2_marker as impl_word_break_name_to_value_v2_marker; diff --git a/provider/data/properties/fingerprints.csv b/provider/data/properties/fingerprints.csv index 98e9a37ccee..c6f6c7840e9 100644 --- a/provider/data/properties/fingerprints.csv +++ b/provider/data/properties/fingerprints.csv @@ -1,16 +1,16 @@ -propnames/from/GCB@1, , 295B, 250B, f2e454713aa9d7b7 -propnames/from/InSC@1, , 703B, 658B, 63f03c8b66edf35e -propnames/from/SB@1, , 264B, 219B, 4c43c3fb27c051da -propnames/from/WB@1, , 447B, 402B, 47b082a835be1ff2 -propnames/from/bc@1, , 696B, 651B, e2218b08b46d1e15 -propnames/from/ccc@1, , 827B, 783B, 38e394b20d58c1df -propnames/from/ea@1, , 151B, 105B, 4bc69f982fa6b2de -propnames/from/gc@1, , 792B, 747B, 2f7ece7581036df2 -propnames/from/gcm@1, , 951B, 907B, 43b812154d2d3914 -propnames/from/hst@1, , 182B, 136B, bdcb96569690b32c -propnames/from/jt@1, , 177B, 131B, b45c742d4b17ceb -propnames/from/lb@1, , 1007B, 963B, bb6e2daf75e2057f -propnames/from/sc@1, , 3684B, 3640B, d1ed7fca398b05b8 +propnames/from/GCB@2, , 194B, 173B, 723a51eaaf05233e +propnames/from/InSC@2, , 491B, 470B, 9369ace69f1abae7 +propnames/from/SB@2, , 164B, 143B, 7a8e570bdbb11805 +propnames/from/WB@2, , 332B, 311B, 1df99611463b0be4 +propnames/from/bc@2, , 463B, 442B, 9578fc7e125dcb29 +propnames/from/ccc@2, , 479B, 458B, e9638cadad3a0fff +propnames/from/ea@2, , 86B, 64B, 18889574098a24ca +propnames/from/gc@2, , 619B, 598B, fc71812cb4e744a7 +propnames/from/gcm@2, , 744B, 723B, a0acd137df0b5e94 +propnames/from/hst@2, , 116B, 94B, 70df5ae746d5b32f +propnames/from/jt@2, , 117B, 95B, 4a919456a9260ca7 +propnames/from/lb@2, , 780B, 759B, e8e1cfec25a22d9f +propnames/from/sc@2, , 2512B, 2491B, 39b84a96cd699472 propnames/to/long/linear/GCB@1, , 173B, 151B, 9feae38a09898348 propnames/to/long/linear/InSC@1, , 607B, 585B, 36e854e09df6ac36 propnames/to/long/linear/SB@1, , 132B, 109B, 1bddbfc00ea789cb diff --git a/provider/data/properties/stubdata/bidi_class_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/bidi_class_name_to_value_v2_marker.rs.data similarity index 55% rename from provider/data/properties/stubdata/bidi_class_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/bidi_class_name_to_value_v2_marker.rs.data index c73c0ad77f5..d1db6c8996d 100644 --- a/provider/data/properties/stubdata/bidi_class_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/bidi_class_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 696B[^1] for the singleton data struct +/// * 463B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_bidi_class_name_to_value_v1_marker { +macro_rules! __impl_bidi_class_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b".\0\0\0\0\0\x02\0\x04\0\x11\0\x1E\0\x1F\0!\x001\0A\0C\0E\0G\0I\0X\0j\0}\0\x91\0\x94\0\x95\0\xA2\0\xB9\0\xCE\0\xE4\0\xE7\0\xEA\0\xED\0\xFC\0\xFF\0\x01\x01\x0E\x01!\x01$\x01'\x01=\x01T\x01U\x01b\x01y\x01\x8E\x01\xA4\x01\xA7\x01\xAA\x01\xAD\x01\xAE\x01\xBF\x01\xCA\x01ALANArabic_LetterArabic_NumberBBNBoundary_NeutralCommon_SeparatorCSENESETEuropean_NumberEuropean_SeparatorEuropean_TerminatorFirst_Strong_IsolateFSILLeft_To_RightLeft_To_Right_EmbeddingLeft_To_Right_IsolateLeft_To_Right_OverrideLRELRILRONonspacing_MarkNSMONOther_NeutralParagraph_SeparatorPDFPDIPop_Directional_FormatPop_Directional_IsolateRRight_To_LeftRight_To_Left_EmbeddingRight_To_Left_IsolateRight_To_Left_OverrideRLERLIRLOSSegment_SeparatorWhite_SpaceWS") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\r\0\x05\0\r\0\x05\0\x07\0\x12\0\x12\0\x06\0\x06\0\x02\0\x03\0\x04\0\x02\0\x03\0\x04\0\x13\0\x13\0\0\0\0\0\x0B\0\x14\0\x0C\0\x0B\0\x14\0\x0C\0\x11\0\x11\0\n\0\n\0\x07\0\x10\0\x16\0\x10\0\x16\0\x01\0\x01\0\x0E\0\x15\0\x0F\0\x0E\0\x15\0\x0F\0\x08\0\x08\0\t\0\t\0") }) - }, - }; + pub const SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1lABCEFLNOPRSW\0\0\0\0\0\0\0\0\x01\x01\x01\x1D4Hy\x94\xCF\xE5\xF67r\x84\xC3LNr\x01\x02\x8D\x85abic_\xC2LN\x06etter\x8Dumber\x85\x87\xC2No\x02\x90\x02undary_Neutral\x90\x02\xC2So\x01\x86mmon_Separator\x86\xC4NSTu\x01\x02\x03\x82\x83\x84ropean_\xC3NST\x06\x0Fumber\x82eparator\x83erminator\x84\xC2Si\x03I\x90\x03rst_Strong_Isolate\x90\x03\x80\xC2Re\n\xC3EIO\x01\x03\x8B\x90\x04\x8Cft_To_Right\x80_\xC3EIO\t\x11mbedding\x8Bsolate\x90\x04verride\x8C\xC2So\x03M\x90\x01nspacing_Mark\x90\x01\xC2Nt\x01\x8Aher_Neutral\x8A\xC3Dao\x08\x1A\xC2FI\x02\x90\0\x90\x06ragraph_Separator\x87p_Directional_\xC2FI\x07ormat\x90\0solate\x90\x06\x81\xC2Li\n\xC3EIO\x01\x03\x8E\x90\x05\x8Fght_To_Left\x81_\xC3EIO\t\x11mbedding\x8Esolate\x90\x05verride\x8F\x88egment_Separator\x88\xC2Sh\x01\x89ite_Space\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_BIDI_CLASS_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_bidi_class_name_to_value_v1_marker!($provider); + __impl_bidi_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_bidi_class_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_bidi_class_name_to_value_v1_marker as impl_bidi_class_name_to_value_v1_marker; +pub use __impl_bidi_class_name_to_value_v2_marker as impl_bidi_class_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/canonical_combining_class_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/canonical_combining_class_name_to_value_v2_marker.rs.data similarity index 52% rename from provider/data/properties/stubdata/canonical_combining_class_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/canonical_combining_class_name_to_value_v2_marker.rs.data index a2a11a0985b..56195905dc5 100644 --- a/provider/data/properties/stubdata/canonical_combining_class_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/canonical_combining_class_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 827B[^1] for the singleton data struct +/// * 479B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_canonical_combining_class_name_to_value_v1_marker { +macro_rules! __impl_canonical_combining_class_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"O\0\0\0\0\0\x01\0\x06\0\x10\0\x1B\0\x1D\0\x1F\0\"\0&\0)\0-\0;\0O\0]\0p\0q\0v\0\x80\0\x8B\0\x8D\0\x8F\0\x94\0\x9A\0\xA0\0\xA5\0\xAB\0\xB0\0\xB6\0\xBC\0\xC1\0\xC7\0\xCD\0\xD3\0\xD8\0\xDD\0\xE2\0\xE7\0\xEC\0\xF1\0\xF6\0\xFB\0\0\x01\x05\x01\n\x01\x0F\x01\x14\x01\x19\x01\x1E\x01#\x01(\x01-\x012\x017\x01<\x01A\x01F\x01K\x01P\x01R\x01T\x01`\x01l\x01p\x01{\x01\x89\x01\x8B\x01\x97\x01\x99\x01\x9A\x01\x9E\x01\xA0\x01\xAD\x01\xAF\x01\xB4\x01\xB6\x01\xBD\x01\xBE\x01\xC3\x01\xC9\x01AAboveAbove_LeftAbove_RightALARATAATARATBATBLAttached_AboveAttached_Above_RightAttached_BelowAttached_Below_LeftBBelowBelow_LeftBelow_RightBLBRCCC10CCC103CCC107CCC11CCC118CCC12CCC122CCC129CCC13CCC130CCC132CCC133CCC14CCC15CCC16CCC17CCC18CCC19CCC20CCC21CCC22CCC23CCC24CCC25CCC26CCC27CCC28CCC29CCC30CCC31CCC32CCC33CCC34CCC35CCC36CCC84CCC91DADBDouble_AboveDouble_BelowHANRHan_ReadingIota_SubscriptISKana_VoicingKVLLeftNKNot_ReorderedNRNuktaOVOverlayRRightViramaVR") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE6\0\xE6\0\xE4\0\xE8\0\xE4\0\xE8\0\xD6\0\xD8\0\xCA\0\xC8\0\xD6\0\xD8\0\xCA\0\xC8\0\xDC\0\xDC\0\xDA\0\xDE\0\xDA\0\xDE\0\n\0g\0k\0\x0B\0v\0\x0C\0z\0\x81\0\r\0\x82\0\x84\0\x85\0\x0E\0\x0F\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1A\0\x1B\0\x1C\0\x1D\0\x1E\0\x1F\0 \0!\0\"\0#\0$\0T\0[\0\xEA\0\xE9\0\xEA\0\xE9\0\x06\0\x06\0\xF0\0\xF0\0\x08\0\x08\0\xE0\0\xE0\0\x07\0\0\0\0\0\x07\0\x01\0\x01\0\xE2\0\xE2\0\t\0\t\0") }) - }, - }; + pub const SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1lABCDHIKLNORV\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01Yz\x110AUel\x86\x91\x99\x91V\xC5LRTbt\x02\x04\x12'\x91T\x91X\xC2AB\x05\x91FR\x91H\x91:L\x918ove\x91V_\xC2LR\x05eft\x91Tight\x91Xtached_\xC2AB\x0Ebove\x91F_Right\x91Helow\x91:_Left\x918\x91L\xC3LRe\x02\x04\x91J\x91Nlow\x91L_\xC2LR\x05eft\x91Jight\x91NCC\xC512389Ai\x85\x88\xCA0123456789\t\r\x16#$%')+\x8A\xC237\x02\x90W\x90[\x8B8\x90f\x8C\xC229\x02\x90j\x90q\x8D\xC3023\x02\x04\x90r\x90t\x90u\x8E\x8F\x90\0\x90\x01\x90\x02\x90\x03\xCA0123456789\x02\x04\x06\x08\n\x0C\x0E\x10\x12\x90\x04\x90\x05\x90\x06\x90\x07\x90\x08\x90\t\x90\n\x90\x0B\x90\x0C\x90\r\xC70123456\x02\x04\x06\x08\n\x0C\x90\x0E\x90\x0F\x90\x10\x90\x11\x90\x12\x90\x13\x90\x144\x90D1\x90K\xC3ABo\x02\x04\x91Z\x91Yuble_\xC2AB\x06bove\x91Zelow\x91Y\xC2Aa\x03NR\x86n_Reading\x86\xC2So\x02\x91`ta_Subscript\x91`\xC2Va\x01\x88na_Voicing\x88\x91Peft\x91P\xC4KRou\x01\x02\x0E\x87\x80t_Reordered\x80kta\x87\xC2Vv\x01\x81erlay\x81\x91Right\x91R\xC2Ri\x01\x89rama\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_CANONICAL_COMBINING_CLASS_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_canonical_combining_class_name_to_value_v1_marker!($provider); + __impl_canonical_combining_class_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_canonical_combining_class_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_canonical_combining_class_name_to_value_v1_marker as impl_canonical_combining_class_name_to_value_v1_marker; +pub use __impl_canonical_combining_class_name_to_value_v2_marker as impl_canonical_combining_class_name_to_value_v2_marker; diff --git a/provider/data/properties/data/east_asian_width_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/east_asian_width_name_to_value_v2_marker.rs.data similarity index 65% rename from provider/data/properties/data/east_asian_width_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/east_asian_width_name_to_value_v2_marker.rs.data index 51abb10aeac..39fe9367c87 100644 --- a/provider/data/properties/data/east_asian_width_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/east_asian_width_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 151B[^1] for the singleton data struct +/// * 86B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_east_asian_width_name_to_value_v1_marker { +macro_rules! __impl_east_asian_width_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\n\0\x0B\0\x14\0\x15\0\x1E\0\x1F\0!\0'\0.\0/\0AAmbiguousFFullwidthHHalfwidthNNaNarrowNeutralWWide") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x03\0\x03\0\x02\0\x02\0\0\0\x04\0\x04\0\0\0\x05\0\x05\0") }) - }, - }; + pub const SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC5AFHNW\n\x14\x1E/\x81mbiguous\x81\x83ullwidth\x83\x82alfwidth\x82\x80\xC2ae\x06\x84rrow\x84utral\x80\x85ide\x85") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_EAST_ASIAN_WIDTH_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_east_asian_width_name_to_value_v1_marker!($provider); + __impl_east_asian_width_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_east_asian_width_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_east_asian_width_name_to_value_v1_marker as impl_east_asian_width_name_to_value_v1_marker; +pub use __impl_east_asian_width_name_to_value_v2_marker as impl_east_asian_width_name_to_value_v2_marker; diff --git a/provider/data/properties/data/general_category_mask_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/general_category_mask_name_to_value_v2_marker.rs.data similarity index 50% rename from provider/data/properties/data/general_category_mask_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/general_category_mask_name_to_value_v2_marker.rs.data index a96f61b07ff..4899fa9bf6b 100644 --- a/provider/data/properties/data/general_category_mask_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/general_category_mask_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 951B[^1] for the singleton data struct +/// * 744B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_general_category_mask_name_to_value_v1_marker { +macro_rules! __impl_general_category_mask_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"P\0\0\0\0\0\x01\0\r\0\x0F\0\x11\0\"\0$\0)\0+\09\0N\0U\0W\0f\0v\0\x84\0\x89\0\x97\0\xA8\0\xAE\0\xC1\0\xC2\0\xC4\0\xCA\0\xD7\0\xE5\0\xE7\0\xE9\0\xEB\0\xFB\0\xFD\0\xFF\0\0\x01\x04\x01\x0F\x01\x11\x01\x13\x01\x15\x01$\x013\x014\x016\x018\x01:\x01I\x01O\x01_\x01d\x01p\x01|\x01\x8D\x01\x99\x01\x9A\x01\xAD\x01\xAF\x01\xB1\x01\xB3\x01\xB5\x01\xB7\x01\xB9\x01\xC4\x01\xC6\x01\xCB\x01\xD6\x01\xD7\x01\xD9\x01\xE2\x01\xE4\x01\xE6\x01\xE8\x01\xF7\x01\x03\x02\x0C\x02\x12\x02\"\x02,\x02<\x02=\x02?\x02A\x02CCased_LetterCcCfClose_PunctuationCncntrlCoCombining_MarkConnector_PunctuationControlCsCurrency_SymbolDash_PunctuationDecimal_NumberdigitEnclosing_MarkFinal_PunctuationFormatInitial_PunctuationLLCLetterLetter_NumberLine_SeparatorLlLmLoLowercase_LetterLtLuMMarkMath_SymbolMcMeMnModifier_LetterModifier_SymbolNNdNlNoNonspacing_MarkNumberOpen_PunctuationOtherOther_LetterOther_NumberOther_PunctuationOther_SymbolPParagraph_SeparatorPcPdPePfPiPoPrivate_UsePspunctPunctuationSScSeparatorSkSmSoSpace_SeparatorSpacing_MarkSurrogateSymbolTitlecase_LetterUnassignedUppercase_LetterZZlZpZs") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xFA\xFF\xFF\xFF\x0F\0\x10\0\x15\0\0\0\x0F\0\x11\0\xFD\xFF\x16\0\x0F\0\x12\0\x19\0\x13\0\t\0\t\0\x07\0\x1D\0\x10\0\x1C\0\xFE\xFF\xFF\xFF\xFE\xFF\n\0\r\0\x02\0\x04\0\x05\0\x02\0\x03\0\x01\0\xFD\xFF\xFD\xFF\x18\0\x08\0\x07\0\x06\0\x04\0\x1A\0\xFC\xFF\t\0\n\0\x0B\0\x06\0\xFC\xFF\x14\0\xFA\xFF\x05\0\x0B\0\x17\0\x1B\0\xF9\xFF\x0E\0\x16\0\x13\0\x15\0\x1D\0\x1C\0\x17\0\x11\0\x14\0\xF9\xFF\xF9\xFF\xF8\xFF\x19\0\xFB\xFF\x1A\0\x18\0\x1B\0\x0C\0\x08\0\x12\0\xF8\xFF\x03\0\0\0\x01\0\xFB\xFF\r\0\x0E\0\x0C\0") }) - }, - }; + pub const SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1qCDEFILMNOPSTUZcdp\0\0\0\0\0\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02u\x96\xA4\xBF\xD3\x19Sv\xB8\x06Td\x80\x8C\x91\x96\x93\xEFj\xC8acflnosu\r\x0E\x10!\"QSsed_Letter\x93\xEFo\x8F\x90\0ose_Punctuation\x90\x05\x80\x90\x01\xC2mn\x0Ebining_Mark\x93\xEFm\xC2nt\x13ector_Punctuation\x90\x06rol\x8F\x90\x02rrency_Symbol\x90\t\xC2ae\x10sh_Punctuation\x90\x03cimal_Number\x89nclosing_Mark\x87\xC2io\x11nal_Punctuation\x90\rrmat\x90\0nitial_Punctuation\x90\x0C\x93\xEFn\xC8Ceilmotu\x03\x12\x1F !12\x93\xEFotter\x93\xEFn_Number\x8Ane_Separator\x8D\x82\x84\x85wercase_Letter\x82\x83\x81\x93\xEFm\xC5aceno\x12\x13\x14\x15\xC2rt\x04k\x93\xEFmh_Symbol\x90\x08\x88\x87\x86difier_\xC2LS\x06etter\x84ymbol\x90\n\x93\xEFl\xC4dlou\x01\x02\x11\x89\x8A\x8Bnspacing_Mark\x86mber\x93\xEFl\xC2pt\x10en_Punctuation\x90\x04her\x93\xEFj_\xC4LNPS\x06\x0C\x18etter\x85umber\x8Bunctuation\x90\x07ymbol\x90\x0B\x93\xEFi\xCAacdefiorsu\x12\x14\x16\x18\x1A\x1C\x1E)+ragraph_Separator\x8E\x90\x06\x90\x03\x90\x05\x90\r\x90\x0C\x90\x07ivate_Use\x90\x01\x90\x04nctuation\x93\xEFi\x93\xEFh\xC8cekmopuy\x02\x0C\x0E\x10\x12+4\x90\tparator\x93\xEFk\x90\n\x90\x08\x90\x0Bac\xC2ei\x0B_Separator\x8Cng_Mark\x88rrogate\x90\x02mbol\x93\xEFhitlecase_Letter\x83\xC2np\tassigned\x80percase_Letter\x81\x93\xEFk\xC3lps\x01\x02\x8D\x8E\x8Cntrl\x8Figit\x89unct\x93\xEFi") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_MASK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_general_category_mask_name_to_value_v1_marker!($provider); + __impl_general_category_mask_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_general_category_mask_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_general_category_mask_name_to_value_v1_marker as impl_general_category_mask_name_to_value_v1_marker; +pub use __impl_general_category_mask_name_to_value_v2_marker as impl_general_category_mask_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/general_category_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/general_category_name_to_value_v2_marker.rs.data similarity index 54% rename from provider/data/properties/stubdata/general_category_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/general_category_name_to_value_v2_marker.rs.data index a006635988a..5579bb79ff8 100644 --- a/provider/data/properties/stubdata/general_category_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/general_category_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 792B[^1] for the singleton data struct +/// * 619B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_general_category_name_to_value_v1_marker { +macro_rules! __impl_general_category_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b">\0\0\0\0\0\x02\0\x04\0\x15\0\x17\0\x1C\0\x1E\x003\0:\0<\0K\0[\0i\0n\0|\0\x8D\0\x93\0\xA6\0\xB3\0\xC1\0\xC3\0\xC5\0\xC7\0\xD7\0\xD9\0\xDB\0\xE6\0\xE8\0\xEA\0\xEC\0\xFB\0\n\x01\x0C\x01\x0E\x01\x10\x01\x1F\x01/\x01;\x01G\x01X\x01d\x01w\x01y\x01{\x01}\x01\x7F\x01\x81\x01\x83\x01\x8E\x01\x90\x01\x92\x01\x94\x01\x96\x01\x98\x01\xA7\x01\xB3\x01\xBC\x01\xCC\x01\xD6\x01\xE6\x01\xE8\x01\xEA\x01CcCfClose_PunctuationCncntrlCoConnector_PunctuationControlCsCurrency_SymbolDash_PunctuationDecimal_NumberdigitEnclosing_MarkFinal_PunctuationFormatInitial_PunctuationLetter_NumberLine_SeparatorLlLmLoLowercase_LetterLtLuMath_SymbolMcMeMnModifier_LetterModifier_SymbolNdNlNoNonspacing_MarkOpen_PunctuationOther_LetterOther_NumberOther_PunctuationOther_SymbolParagraph_SeparatorPcPdPePfPiPoPrivate_UsePsScSkSmSoSpace_SeparatorSpacing_MarkSurrogateTitlecase_LetterUnassignedUppercase_LetterZlZpZs") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x0F\0\x10\0\x15\0\0\0\x0F\0\x11\0\x16\0\x0F\0\x12\0\x19\0\x13\0\t\0\t\0\x07\0\x1D\0\x10\0\x1C\0\n\0\r\0\x02\0\x04\0\x05\0\x02\0\x03\0\x01\0\x18\0\x08\0\x07\0\x06\0\x04\0\x1A\0\t\0\n\0\x0B\0\x06\0\x14\0\x05\0\x0B\0\x17\0\x1B\0\x0E\0\x16\0\x13\0\x15\0\x1D\0\x1C\0\x17\0\x11\0\x14\0\x19\0\x1A\0\x18\0\x1B\0\x0C\0\x08\0\x12\0\x03\0\0\0\x01\0\r\0\x0E\0\x0C\0") }) - }, - }; + pub const SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1pCDEFILMNOPSTUZcd\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x02\x02\x02Rs\x81\x9C\xB0\xEB\x1B2q\xAE\xE4\xF4\x10\x19\x1E\xC7cflnosu\x01\x03\x14\x1535\x8F\x90\0ose_Punctuation\x90\x05\x80\x90\x01n\xC2nt\x13ector_Punctuation\x90\x06rol\x8F\x90\x02rrency_Symbol\x90\t\xC2ae\x10sh_Punctuation\x90\x03cimal_Number\x89nclosing_Mark\x87\xC2io\x11nal_Punctuation\x90\rrmat\x90\0nitial_Punctuation\x90\x0C\xC7eilmotu\x0C\x19\x1A\x1B+,tter_Number\x8Ane_Separator\x8D\x82\x84\x85wercase_Letter\x82\x83\x81\xC5aceno\x0B\x0C\r\x0Eth_Symbol\x90\x08\x88\x87\x86difier_\xC2LS\x06etter\x84ymbol\x90\n\xC3dlo\x01\x02\x89\x8A\x8Bnspacing_Mark\x86\xC2pt\x10en_Punctuation\x90\x04her_\xC4LNPS\x06\x0C\x18etter\x85umber\x8Bunctuation\x90\x07ymbol\x90\x0B\xC9acdefiors\x12\x14\x16\x18\x1A\x1C\x1E)ragraph_Separator\x8E\x90\x06\x90\x03\x90\x05\x90\r\x90\x0C\x90\x07ivate_Use\x90\x01\x90\x04\xC6ckmopu\x02\x04\x06\x08!\x90\t\x90\n\x90\x08\x90\x0Bac\xC2ei\x0B_Separator\x8Cng_Mark\x88rrogate\x90\x02itlecase_Letter\x83\xC2np\tassigned\x80percase_Letter\x81\xC3lps\x01\x02\x8D\x8E\x8Cntrl\x8Figit\x89") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GENERAL_CATEGORY_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_general_category_name_to_value_v1_marker!($provider); + __impl_general_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_general_category_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_general_category_name_to_value_v1_marker as impl_general_category_name_to_value_v1_marker; +pub use __impl_general_category_name_to_value_v2_marker as impl_general_category_name_to_value_v2_marker; diff --git a/provider/data/properties/data/grapheme_cluster_break_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v2_marker.rs.data similarity index 62% rename from provider/data/properties/data/grapheme_cluster_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v2_marker.rs.data index cfcf8df8cf0..db45618e4ff 100644 --- a/provider/data/properties/data/grapheme_cluster_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/grapheme_cluster_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 295B[^1] for the singleton data struct +/// * 194B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_grapheme_cluster_break_name_to_value_v1_marker { +macro_rules! __impl_grapheme_cluster_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x1C\0\0\0\0\0\x02\0\t\0\x0B\0\r\0\x13\0\x1D\0 \0\"\0,\0.\x004\x007\0E\0F\0H\0J\0M\0R\0T\0[\0m\0o\0q\0|\0}\0~\0\x80\0CNControlCREBE_BaseE_Base_GAZEBGEME_ModifierEXExtendGAZGlue_After_ZwjLLFLVLVTOtherPPPrependRegional_IndicatorRISMSpacingMarkTVXXZWJ") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x02\0\r\0\r\0\x0E\0\x0E\0\x0F\0\x0F\0\x03\0\x03\0\x10\0\x10\0\x04\0\x05\0\x06\0\x07\0\0\0\x0B\0\x0B\0\x0C\0\x0C\0\n\0\n\0\x08\0\t\0\0\0\x11\0") }) - }, - }; + pub const SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xCCCEGLOPRSTVXZ\x0E7LUZe{\x8A\x8B\x8C\x8E\xC3NRo\x01\x02\x81\x82ntrol\x81\xC5BMX_x\x03\x04\x05\x1A\x8DG\x8E\x8F\x83\xC2BM\tase\x8D_GAZ\x8Eodifier\x8Ftend\x83\xC2Al\x03Z\x90\0ue_After_Zwj\x90\0\x84\xC2FV\x01\x85\x86T\x87ther\x80\xC2Pr\x01\x8Bepend\x8B\xC2Ie\x01\x8Cgional_Indicator\x8C\xC2Mp\x01\x8AacingMark\x8A\x88\x89X\x80WJ\x90\x01") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_GRAPHEME_CLUSTER_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); + __impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_grapheme_cluster_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_grapheme_cluster_break_name_to_value_v1_marker as impl_grapheme_cluster_break_name_to_value_v1_marker; +pub use __impl_grapheme_cluster_break_name_to_value_v2_marker as impl_grapheme_cluster_break_name_to_value_v2_marker; diff --git a/provider/data/properties/data/hangul_syllable_type_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v2_marker.rs.data similarity index 65% rename from provider/data/properties/data/hangul_syllable_type_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v2_marker.rs.data index ab930b288bb..24be85195e9 100644 --- a/provider/data/properties/data/hangul_syllable_type_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/hangul_syllable_type_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 182B[^1] for the singleton data struct +/// * 116B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_hangul_syllable_type_name_to_value_v1_marker { +macro_rules! __impl_hangul_syllable_type_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\r\0\x0F\0\x1A\0\x1D\0)\0+\09\0:\0G\0H\0LLeading_JamoLVLV_SyllableLVTLVT_SyllableNANot_ApplicableTTrailing_JamoVVowel_Jamo") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x04\0\x04\0\x05\0\x05\0\0\0\0\0\x03\0\x03\0\x02\0\x02\0") }) - }, - }; + pub const SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC4LNTV);I\x81\xC2Ve\x19\x84\xC2T_\x0B\x85_Syllable\x85Syllable\x84ading_Jamo\x81\xC2Ao\x01\x80t_Applicable\x80\x83railing_Jamo\x83\x82owel_Jamo\x82") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_HANGUL_SYLLABLE_TYPE_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_hangul_syllable_type_name_to_value_v1_marker!($provider); + __impl_hangul_syllable_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_hangul_syllable_type_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_hangul_syllable_type_name_to_value_v1_marker as impl_hangul_syllable_type_name_to_value_v1_marker; +pub use __impl_hangul_syllable_type_name_to_value_v2_marker as impl_hangul_syllable_type_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v2_marker.rs.data similarity index 56% rename from provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v2_marker.rs.data index 6c0c6de7d16..a0291d44741 100644 --- a/provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/indic_syllabic_category_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 703B[^1] for the singleton data struct +/// * 491B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_indic_syllabic_category_name_to_value_v1_marker { +macro_rules! __impl_indic_syllabic_category_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"$\0\0\0\0\0\x08\0\r\0\"\x003\0<\0J\0Y\0n\0\x89\0\x99\0\xA9\0\xBE\0\xD7\0\xE9\0\xFC\0\x16\x01,\x01;\x01L\x01R\x01b\x01l\x01q\x01w\x01\x84\x01\x89\x01\x94\x01\xA4\x01\xB5\x01\xC0\x01\xC9\x01\xCF\x01\xD6\x01\xDB\x01\xEA\x01AvagrahaBinduBrahmi_Joining_NumberCantillation_MarkConsonantConsonant_DeadConsonant_FinalConsonant_Head_LetterConsonant_Initial_PostfixedConsonant_KillerConsonant_MedialConsonant_PlaceholderConsonant_Preceding_RephaConsonant_PrefixedConsonant_SubjoinedConsonant_Succeeding_RephaConsonant_With_StackerGemination_MarkInvisible_StackerJoinerModifying_LetterNon_JoinerNuktaNumberNumber_JoinerOtherPure_KillerRegister_ShifterSyllable_ModifierTone_LetterTone_MarkViramaVisargaVowelVowel_DependentVowel_Independent") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x02\0\x03\0\x04\0\x05\0\x06\0\x07\0\x08\0\t\0\n\0\x0B\0\x0C\0\r\0\x0E\0\x0F\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\0\0\x1A\0\x1B\0\x1C\0\x1D\0\x1E\0\x1F\0 \0!\0\"\0#\0") }) - }, - }; + pub const SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1nABCGIJMNOPRSTV\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x08$\xD0\xE0\xF2\xF9\n.3?Pbvvagraha\x81\xC2ir\x04ndu\x82ahmi_Joining_Number\x83\xC2ao\x10ntillation_Mark\x84nsonant\x85_\xC9DFHIKMPSW\x04\t\x14%+1Upead\x86inal\x87ead_Letter\x88nitial_Postfixed\x89iller\x8Aedial\x8B\xC2lr\naceholder\x8Ce\xC2cf\x0Ceding_Repha\x8Dixed\x8Eu\xC2bc\x07joined\x8Fceeding_Repha\x90\0ith_Stacker\x90\x01emination_Mark\x90\x02nvisible_Stacker\x90\x03oiner\x90\x04odifying_Letter\x90\x05\xC2ou\nn_Joiner\x90\x06\xC2km\x04ta\x90\x07ber\x90\x08_Joiner\x90\tther\x80ure_Killer\x90\negister_Shifter\x90\x0Byllable_Modifier\x90\x0Cone_\xC2LM\x07etter\x90\rark\x90\x0E\xC2io\x0F\xC2rs\x05ama\x90\x0Farga\x90\x10wel\x90\x11_\xC2DI\nependent\x90\x12ndependent\x90\x13") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_INDIC_SYLLABIC_CATEGORY_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_indic_syllabic_category_name_to_value_v1_marker!($provider); + __impl_indic_syllabic_category_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_indic_syllabic_category_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_indic_syllabic_category_name_to_value_v1_marker as impl_indic_syllabic_category_name_to_value_v1_marker; +pub use __impl_indic_syllabic_category_name_to_value_v2_marker as impl_indic_syllabic_category_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/joining_type_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/joining_type_name_to_value_v2_marker.rs.data similarity index 64% rename from provider/data/properties/stubdata/joining_type_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/joining_type_name_to_value_v2_marker.rs.data index 877d5962d63..3ce31283bd8 100644 --- a/provider/data/properties/stubdata/joining_type_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/joining_type_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 177B[^1] for the singleton data struct +/// * 117B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_joining_type_name_to_value_v1_marker { +macro_rules! __impl_joining_type_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x0C\0\0\0\0\0\x01\0\x02\0\x0E\0\x1A\0\x1B\0'\x002\x003\0@\0A\0L\0CDDual_JoiningJoin_CausingLLeft_JoiningNon_JoiningRRight_JoiningTTransparentU") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x02\0\x02\0\x01\0\x03\0\x03\0\0\0\x04\0\x04\0\x05\0\x05\0\0\0") }) - }, - }; + pub const SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xC8CDJLNRTU\x01\x0E\x1A'2@L\x81\x82ual_Joining\x82oin_Causing\x81\x83eft_Joining\x83on_Joining\x80\x84ight_Joining\x84\x85ransparent\x85\x80") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_JOINING_TYPE_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_joining_type_name_to_value_v1_marker!($provider); + __impl_joining_type_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_joining_type_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_joining_type_name_to_value_v1_marker as impl_joining_type_name_to_value_v1_marker; +pub use __impl_joining_type_name_to_value_v2_marker as impl_joining_type_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/line_break_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/line_break_name_to_value_v1_marker.rs.data deleted file mode 100644 index 8b46b3b381e..00000000000 --- a/provider/data/properties/stubdata/line_break_name_to_value_v1_marker.rs.data +++ /dev/null @@ -1,80 +0,0 @@ -// @generated -/// Implement `DataProvider` on the given struct using the data -/// hardcoded in this file. This allows the struct to be used with -/// `icu`'s `_unstable` constructors. -/// -/// Using this implementation will embed the following data in the binary's data segment: -/// * 1007B[^1] for the singleton data struct -/// -/// [^1]: these numbers can be smaller in practice due to linker deduplication -#[doc(hidden)] -#[macro_export] -macro_rules! __impl_line_break_name_to_value_v1_marker { - ($ provider : ty) => { - #[clippy::msrv = "1.71.1"] - const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; - #[clippy::msrv = "1.71.1"] - impl $provider { - #[doc(hidden)] - pub const SINGLETON_LINE_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"[\0\0\0\0\0\x02\0\x04\0\n\0\x18\0$\0&\x000\09\0;\0=\0?\0A\0C\0E\0P\0\\\0f\0s\0\x82\0\x84\0\x86\0\x88\0\x99\0\xAA\0\xAC\0\xBA\0\xC9\0\xE5\0\xF5\0\xF7\0\xF9\0\xFB\0\x01\x01\x03\x01\r\x01\x0F\x01\x1A\x01\x1C\x01 \x01\"\x01$\x011\x013\x015\x01;\x01=\x01H\x01J\x01W\x01b\x01m\x01o\x01q\x01s\x01u\x01w\x01\x80\x01\x8F\x01\x98\x01\x9A\x01\xA4\x01\xA6\x01\xA8\x01\xAF\x01\xB1\x01\xC1\x01\xC3\x01\xD2\x01\xD4\x01\xE2\x01\xE4\x01\xED\x01\xFF\x01\x01\x02\x03\x02\x05\x02\x07\x02\x0C\x02\x15\x02\x17\x02\x1E\x02 \x02\"\x02(\x024\x026\x02A\x02C\x02E\x02H\x02AIAKAksaraAksara_PrebaseAksara_StartALAlphabeticAmbiguousAPASB2BABBBKBreak_AfterBreak_BeforeBreak_BothBreak_SymbolsCarriage_ReturnCBCJCLClose_ParenthesisClose_PunctuationCMCombining_MarkComplex_ContextConditional_Japanese_StarterContingent_BreakCPCREBE_BaseEME_ModifierEXExclamationGLGlueH2H3Hebrew_LetterHLHYHyphenIDIdeographicINInfix_NumericInseparableInseperableISJLJTJVLFLine_FeedMandatory_BreakNext_LineNLNonstarterNSNUNumericOPOpen_PunctuationPOPostfix_NumericPRPrefix_NumericQUQuotationRegional_IndicatorRISASGSPSpaceSurrogateSYUnknownVFVIViramaVirama_FinalWJWord_JoinerXXZWZWJZWSpace") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0+\0+\0,\0-\0\x02\0\x02\0\x01\0,\0-\0\x03\0\x04\0\x05\0\x06\0\x04\0\x05\0\x03\0\x1B\0\n\0\x07\0%\0\x08\0$\0\x08\0\t\0\t\0\x18\0%\0\x07\0$\0\n\0(\0(\0)\0)\0\x0B\0\x0B\0\x0C\0\x0C\0\x1F\0 \0&\0&\0\r\0\r\0\x0E\0\x0E\0\x0F\0\x10\0\x0F\0\x0F\0\x10\0!\0\"\0#\0\x11\0\x11\0\x06\0\x1D\0\x1D\0\x12\0\x12\0\x13\0\x13\0\x14\0\x14\0\x15\0\x15\0\x16\0\x16\0\x17\0\x17\0'\0'\0\x18\0\x19\0\x1A\0\x1A\0\x19\0\x1B\0\0\0.\0/\0/\0.\0\x1E\0\x1E\0\0\0\x1C\0*\0\x1C\0") }) - }, - }; - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { - if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_LINE_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , ITER) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; - ($ provider : ty , DRY) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , DRY , ITER) => { - __impl_line_break_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; -} -#[doc(inline)] -pub use __impl_line_break_name_to_value_v1_marker as impl_line_break_name_to_value_v1_marker; diff --git a/provider/data/properties/stubdata/line_break_name_to_value_v2_marker.rs.data b/provider/data/properties/stubdata/line_break_name_to_value_v2_marker.rs.data new file mode 100644 index 00000000000..59d939d41cb --- /dev/null +++ b/provider/data/properties/stubdata/line_break_name_to_value_v2_marker.rs.data @@ -0,0 +1,75 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +/// +/// Using this implementation will embed the following data in the binary's data segment: +/// * 780B[^1] for the singleton data struct +/// +/// [^1]: these numbers can be smaller in practice due to linker deduplication +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_line_break_name_to_value_v2_marker { + ($ provider : ty) => { + #[clippy::msrv = "1.71.1"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.71.1"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_LINE_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1uABCEGHIJLMNOPQRSUVWXZ\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02Bs\x04/7\\\x96\xA2\xB1\xC0\xEC\x02+:Rt{\x93\xA4\xA6\xC8IKLPSklm\x01\x03\x04\x06\x08!*\x81\x90\x1B\x82\x90\x1C\x90\x1Dsara\x90\x1B_\xC2PS\x08rebase\x90\x1Ctart\x90\x1Dphabetic\x82biguous\x81\xC52ABKr\x01\x02\x03\x04\x83\x84\x85\x86eak_\xC3ABS\x05\x11fter\x84\xC2eo\x05fore\x85th\x83ymbols\x90\x0B\xC9BJLMPRalo\x01\x03\x04\x05\x07\x08\x164\x87\x90\x15\x88\x89\x90\x14\x8Arriage_Return\x8Aose_P\xC2au\x0Brenthesis\x90\x14nctuation\x88\xC2mn\x1C\xC2bp\x0Bining_Mark\x89lex_Context\x90\x08\xC2dt\x1Aitional_Japanese_Starter\x90\x15ingent_Break\x87\xC5BMX_x\x02\x04\x05\x17\x90\x18\x90\x19\x8B\xC2BM\x05ase\x90\x18odifier\x90\x19clamation\x8B\xC2Ll\x01\x8Cue\x8C\xC623LYey\x02\x04\x06\x07\x14\x90\x0F\x90\x10\x90\x16\x8Dbrew_Letter\x90\x16phen\x8D\xC5DNSdn\x01\x02\x04\x0E\x8E\x8F\x90\0eographic\x8E\xC2fs\x0Cix_Numeric\x90\0ep\xC2ae\x06rable\x8Frable\x8F\xC3LTV\x02\x04\x90\x11\x90\x12\x90\x13\xC2Fi\x02\x90\x01ne_Feed\x90\x01andatory_Break\x86\xC6LSUeou\x02\x04\x06\x0F\x19\x90\r\x90\x02\x90\x03xt_Line\x90\rnstarter\x90\x02meric\x90\x03\xC2Pp\x02\x90\x04en_Punctuation\x90\x04\xC4ORor\x02\x04\x13\x90\x05\x90\x06stfix_Numeric\x90\x05efix_Numeric\x90\x06\xC2Uu\x02\x90\x07otation\x90\x07\xC2Ie\x02\x90\x17gional_Indicator\x90\x17\xC6AGPYpu\x02\x04\x06\x08\r\x90\x08\x90\t\x90\n\x90\x0Bace\x90\nrrogate\x90\tnknown\x80\xC3FIi\x02\x04\x90\x1E\x90\x1Frama\x90\x1F_Final\x90\x1E\xC2Jo\x02\x90\x0Erd_Joiner\x90\x0EX\x80W\x90\x0C\xC2JS\x02\x90\x1Apace\x90\x0C") } } }; + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.id.locale.is_default() { + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_LINE_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , ITER) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; + ($ provider : ty , DRY) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , DRY , ITER) => { + __impl_line_break_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; +} +#[doc(inline)] +pub use __impl_line_break_name_to_value_v2_marker as impl_line_break_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/mod.rs b/provider/data/properties/stubdata/mod.rs index 59aba1a4292..7b7c5641b54 100644 --- a/provider/data/properties/stubdata/mod.rs +++ b/provider/data/properties/stubdata/mod.rs @@ -1,17 +1,17 @@ // @generated -include!("grapheme_cluster_break_name_to_value_v1_marker.rs.data"); -include!("indic_syllabic_category_name_to_value_v1_marker.rs.data"); -include!("sentence_break_name_to_value_v1_marker.rs.data"); -include!("word_break_name_to_value_v1_marker.rs.data"); -include!("bidi_class_name_to_value_v1_marker.rs.data"); -include!("canonical_combining_class_name_to_value_v1_marker.rs.data"); -include!("east_asian_width_name_to_value_v1_marker.rs.data"); -include!("general_category_name_to_value_v1_marker.rs.data"); -include!("general_category_mask_name_to_value_v1_marker.rs.data"); -include!("hangul_syllable_type_name_to_value_v1_marker.rs.data"); -include!("joining_type_name_to_value_v1_marker.rs.data"); -include!("line_break_name_to_value_v1_marker.rs.data"); -include!("script_name_to_value_v1_marker.rs.data"); +include!("grapheme_cluster_break_name_to_value_v2_marker.rs.data"); +include!("indic_syllabic_category_name_to_value_v2_marker.rs.data"); +include!("sentence_break_name_to_value_v2_marker.rs.data"); +include!("word_break_name_to_value_v2_marker.rs.data"); +include!("bidi_class_name_to_value_v2_marker.rs.data"); +include!("canonical_combining_class_name_to_value_v2_marker.rs.data"); +include!("east_asian_width_name_to_value_v2_marker.rs.data"); +include!("general_category_name_to_value_v2_marker.rs.data"); +include!("general_category_mask_name_to_value_v2_marker.rs.data"); +include!("hangul_syllable_type_name_to_value_v2_marker.rs.data"); +include!("joining_type_name_to_value_v2_marker.rs.data"); +include!("line_break_name_to_value_v2_marker.rs.data"); +include!("script_name_to_value_v2_marker.rs.data"); include!("grapheme_cluster_break_value_to_long_name_v1_marker.rs.data"); include!("indic_syllabic_category_value_to_long_name_v1_marker.rs.data"); include!("sentence_break_value_to_long_name_v1_marker.rs.data"); @@ -145,19 +145,19 @@ pub use __make_provider as make_provider; macro_rules! impl_data_provider { ($ provider : ty) => { make_provider!($provider); - impl_grapheme_cluster_break_name_to_value_v1_marker!($provider); - impl_indic_syllabic_category_name_to_value_v1_marker!($provider); - impl_sentence_break_name_to_value_v1_marker!($provider); - impl_word_break_name_to_value_v1_marker!($provider); - impl_bidi_class_name_to_value_v1_marker!($provider); - impl_canonical_combining_class_name_to_value_v1_marker!($provider); - impl_east_asian_width_name_to_value_v1_marker!($provider); - impl_general_category_name_to_value_v1_marker!($provider); - impl_general_category_mask_name_to_value_v1_marker!($provider); - impl_hangul_syllable_type_name_to_value_v1_marker!($provider); - impl_joining_type_name_to_value_v1_marker!($provider); - impl_line_break_name_to_value_v1_marker!($provider); - impl_script_name_to_value_v1_marker!($provider); + impl_grapheme_cluster_break_name_to_value_v2_marker!($provider); + impl_indic_syllabic_category_name_to_value_v2_marker!($provider); + impl_sentence_break_name_to_value_v2_marker!($provider); + impl_word_break_name_to_value_v2_marker!($provider); + impl_bidi_class_name_to_value_v2_marker!($provider); + impl_canonical_combining_class_name_to_value_v2_marker!($provider); + impl_east_asian_width_name_to_value_v2_marker!($provider); + impl_general_category_name_to_value_v2_marker!($provider); + impl_general_category_mask_name_to_value_v2_marker!($provider); + impl_hangul_syllable_type_name_to_value_v2_marker!($provider); + impl_joining_type_name_to_value_v2_marker!($provider); + impl_line_break_name_to_value_v2_marker!($provider); + impl_script_name_to_value_v2_marker!($provider); impl_grapheme_cluster_break_value_to_long_name_v1_marker!($provider); impl_indic_syllabic_category_value_to_long_name_v1_marker!($provider); impl_sentence_break_value_to_long_name_v1_marker!($provider); @@ -271,19 +271,19 @@ macro_rules! impl_any_provider { impl icu_provider::any::AnyProvider for $provider { fn load_any(&self, marker: icu_provider::DataMarkerInfo, req: icu_provider::DataRequest) -> Result { match marker.path.hashed() { - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), - h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::INFO.path.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), diff --git a/provider/data/properties/stubdata/script_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/script_name_to_value_v1_marker.rs.data deleted file mode 100644 index b49ff3787ca..00000000000 --- a/provider/data/properties/stubdata/script_name_to_value_v1_marker.rs.data +++ /dev/null @@ -1,80 +0,0 @@ -// @generated -/// Implement `DataProvider` on the given struct using the data -/// hardcoded in this file. This allows the struct to be used with -/// `icu`'s `_unstable` constructors. -/// -/// Using this implementation will embed the following data in the binary's data segment: -/// * 3684B[^1] for the singleton data struct -/// -/// [^1]: these numbers can be smaller in practice due to linker deduplication -#[doc(hidden)] -#[macro_export] -macro_rules! __impl_script_name_to_value_v1_marker { - ($ provider : ty) => { - #[clippy::msrv = "1.71.1"] - const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; - #[clippy::msrv = "1.71.1"] - impl $provider { - #[doc(hidden)] - pub const SINGLETON_SCRIPT_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"h\x01\0\0\0\0\x05\0\t\0\r\0\x11\0\x15\0*\0.\x004\08\0@\0D\0H\0O\0S\0W\0_\0c\0h\0l\0u\0z\0~\0\x82\0\x89\0\x92\0\x96\0\x9A\0\x9E\0\xA6\0\xAA\0\xB0\0\xB4\0\xBB\0\xBF\0\xC7\0\xCB\0\xD0\0\xD4\0\xE7\0\xEB\0\xEF\0\xF5\0\x07\x01\r\x01\x11\x01\x15\x01\x1D\x01'\x01+\x01/\x015\x019\x01?\x01C\x01G\x01P\x01W\x01c\x01k\x01o\x01s\x01z\x01~\x01\x88\x01\x8C\x01\x97\x01\x9B\x01\xA0\x01\xA4\x01\xA8\x01\xB0\x01\xB4\x01\xB8\x01\xBC\x01\xD0\x01\xD4\x01\xDB\x01\xDF\x01\xE6\x01\xEA\x01\xF2\x01\xF6\x01\xFA\x01\x02\x02\x06\x02\x10\x02\x14\x02\x18\x02\x1C\x02\"\x02&\x02-\x022\x026\x02>\x02B\x02O\x02W\x02[\x02^\x02b\x02f\x02l\x02p\x02\x7F\x02\x83\x02\x87\x02\x8B\x02\x92\x02\x96\x02\x9C\x02\xA0\x02\xA6\x02\xAA\x02\xB2\x02\xB6\x02\xBA\x02\xBE\x02\xC2\x02\xC6\x02\xD6\x02\xDA\x02\xE3\x02\xF8\x02\x0E\x03\x12\x03\x16\x03\x1A\x03\"\x03&\x03*\x030\x034\x038\x03?\x03G\x03[\x03_\x03g\x03k\x03u\x03\x88\x03\x8D\x03\x91\x03\x95\x03\x9B\x03\xA4\x03\xA8\x03\xAC\x03\xB0\x03\xB4\x03\xB8\x03\xBC\x03\xBF\x03\xC3\x03\xC7\x03\xCB\x03\xD0\x03\xD4\x03\xD8\x03\xDE\x03\xE2\x03\xE7\x03\xEB\x03\xEF\x03\xF7\x03\xFF\x03\x03\x04\x07\x04\x0B\x04\x11\x04\x15\x04\x1B\x04#\x04'\x04+\x042\x04;\x04?\x04F\x04J\x04T\x04X\x04_\x04l\x04p\x04{\x04\x7F\x04\x8B\x04\x8F\x04\x9C\x04\xA0\x04\xA4\x04\xB4\x04\xC8\x04\xCC\x04\xD0\x04\xD4\x04\xD8\x04\xE1\x04\xE5\x04\xE8\x04\xEC\x04\xF0\x04\xF4\x04\xFB\x04\x02\x05\x06\x05\x0F\x05\x13\x05\x1E\x05\"\x05-\x051\x055\x059\x05D\x05H\x05K\x05O\x05S\x05X\x05n\x05r\x05w\x05\x7F\x05\x83\x05\x90\x05\x9A\x05\xAB\x05\xB5\x05\xC0\x05\xCB\x05\xDC\x05\xE6\x05\xF0\x05\xF5\x05\xF9\x05\xFD\x05\x02\x06\x06\x06\n\x06\x11\x06\x15\x06!\x06%\x06.\x062\x06=\x06A\x06E\x06M\x06Q\x06U\x06Y\x06]\x06g\x06k\x06o\x06~\x06\x82\x06\x86\x06\x8C\x06\x90\x06\x94\x06\x98\x06\x9D\x06\xA1\x06\xAA\x06\xAE\x06\xB2\x06\xB6\x06\xBA\x06\xC4\x06\xC8\x06\xCF\x06\xD6\x06\xDA\x06\xDE\x06\xE2\x06\xE9\x06\xF4\x06\xF8\x06\xFC\x06\x03\x07\x07\x07\x0E\x07\x12\x07\x16\x07\"\x07&\x07-\x071\x07:\x07>\x07J\x07N\x07R\x07X\x07\\\x07`\x07g\x07k\x07s\x07y\x07\x81\x07\x89\x07\x8D\x07\x92\x07\x96\x07\x9A\x07\x9F\x07\xA3\x07\xA7\x07\xAD\x07\xB3\x07\xB7\x07\xBB\x07\xC1\x07\xC5\x07\xC9\x07\xCD\x07\xD1\x07\xD7\x07\xDB\x07\xE2\x07\xE6\x07\xEE\x07\xF2\x07\xF9\x07\xFD\x07\x01\x08\x05\x08\r\x08\x14\x08\x17\x08\x1B\x08\x1F\x08#\x08+\x081\x085\x08@\x08D\x08H\x08L\x08P\x08T\x08Z\x08\\\x08`\x08p\x08t\x08x\x08|\x08\x80\x08\x84\x08\x88\x08\x8C\x08AdlamAdlmAfakAghbAhomAnatolian_HieroglyphsArabArabicAranArmenianArmiArmnAvestanAvstBaliBalineseBamuBamumBassBassa_VahBatakBatkBengBengaliBhaiksukiBhksBlisBopoBopomofoBrahBrahmiBraiBrailleBugiBugineseBuhdBuhidCakmCanadian_AboriginalCansCariCarianCaucasian_AlbanianChakmaChamCherCherokeeChorasmianChrsCirtCommonCoptCopticCpmnCprtCuneiformCypriotCypro_MinoanCyrillicCyrlCyrsDeseretDevaDevanagariDiakDives_AkuruDogrDograDsrtDuplDuployanEgydEgyhEgypEgyptian_HieroglyphsElbaElbasanElymElymaicEthiEthiopicGeokGeorGeorgianGlagGlagoliticGongGonmGothGothicGranGranthaGreekGrekGujaratiGujrGunjala_GondiGurmukhiGuruHanHanbHangHangulHaniHanifi_RohingyaHanoHansHantHanunooHatrHatranHebrHebrewHiraHiraganaHluwHmngHmnpHrktHungImperial_AramaicIndsInheritedInscriptional_PahlaviInscriptional_ParthianItalJamoJavaJavaneseJpanJurcKaithiKaliKanaKannadaKatakanaKatakana_Or_HiraganaKawiKayah_LiKharKharoshthiKhitan_Small_ScriptKhmerKhmrKhojKhojkiKhudawadiKitsKndaKoreKpelKthiLanaLaoLaooLatfLatgLatinLatnLepcLepchaLimbLimbuLinaLinbLinear_ALinear_BLisuLomaLyciLycianLydiLydianMahajaniMahjMakaMakasarMalayalamMandMandaicManiManichaeanMarcMarchenMasaram_GondiMayaMedefaidrinMedfMeetei_MayekMendMende_KikakuiMercMeroMeroitic_CursiveMeroitic_HieroglyphsMiaoMlymModiMongMongolianMoonMroMrooMteiMultMultaniMyanmarMymrNabataeanNagmNag_MundariNandNandinagariNarbNbatNewaNew_Tai_LueNkgbNkoNkooNshuNushuNyiakeng_Puachue_HmongOgamOghamOl_ChikiOlckOld_HungarianOld_ItalicOld_North_ArabianOld_PermicOld_PersianOld_SogdianOld_South_ArabianOld_TurkicOld_UyghurOriyaOrkhOryaOsageOsgeOsmaOsmanyaOugrPahawh_HmongPalmPalmyrenePaucPau_Cin_HauPermPhagPhags_PaPhliPhlpPhlvPhnxPhoenicianPlrdPrtiPsalter_PahlaviQaacQaaiRejangRjngRohgRoroRunicRunrSamaritanSamrSaraSarbSaurSaurashtraSgnwSharadaShavianShawShrdSiddSiddhamSignWritingSindSinhSinhalaSogdSogdianSogoSoraSora_SompengSoyoSoyomboSundSundaneseSyloSyloti_NagriSyrcSyreSyriacSyrjSyrnTagalogTagbTagbanwaTai_LeTai_ThamTai_VietTakrTakriTaleTaluTamilTamlTangTangsaTangutTavtTeluTeluguTengTfngTglgThaaThaanaThaiTibetanTibtTifinaghTirhTirhutaTnsaTotoUgarUgariticUnknownVaiVaiiVispVithVithkuqiWanchoWaraWarang_CitiWchoWoleXpeoXsuxYeziYezidiYiYiiiZanabazar_SquareZanbZinhZmthZsyeZsymZxxxZyyyZzzz") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xA7\0\xA7\0\x93\0\x9F\0\xA1\0\x9C\0\x02\0\x02\0\xC8\0\x03\0t\0\x03\0u\0u\0>\0>\0\x82\0\x82\0\x86\0\x86\0?\0?\0\x04\0\x04\0\xA8\0\xA8\0@\0\x05\0\x05\0A\0A\0.\0.\x007\x007\0,\0,\0v\0(\0(\0h\0h\0\x9F\0v\0B\0\x06\0\x06\0\xBD\0\xBD\0C\0\0\0\x07\0\x07\0\xC1\0/\0e\0/\0\xC1\0\x08\0\x08\0D\0\t\0\n\0\n\0\xBE\0\xBE\0\xB2\0\xB2\0\t\0\x87\0\x87\0E\0F\0G\0G\0\x88\0\x88\0\xB9\0\xB9\0\x0B\0\x0B\0H\0\x0C\0\x0C\08\08\0\xB3\0\xAF\0\r\0\r\0\x89\0\x89\0\x0E\0\x0E\0\x0F\0\x0F\0\xB3\0\x10\0\x10\0\x11\0\xAC\0\x12\0\x12\0\x11\0\xB6\0+\0I\0J\0+\0\xA2\0\xA2\0\x13\0\x13\0\x14\0\x14\0\x9C\0K\0\xBA\x006\0L\0t\0M\0\x01\0z\0}\0\x1E\0\xAD\0N\0N\0i\0\x94\0x\0O\0\x16\0\x15\0\x16\x006\0\xC6\0O\09\09\0\xBF\0\x17\0\x17\0\x9D\0\x9D\0\x91\0\xBF\0\x15\0w\0\x8A\0x\0j\0\x18\0\x18\0P\0Q\0\x19\0\x19\0R\0R\x000\x000\0S\x001\0S\x001\0\x83\0\x8B\0k\0k\0l\0l\0\xA0\0\xA0\0\xB4\0\xB4\0\x1A\0T\0T\0y\0y\0\xA9\0\xA9\0\xAF\0U\0\xB5\0\xB5\0s\0\x8C\0\x8C\0\x8D\0V\0\x8D\0V\0\\\0\x1A\0\xA3\0\x1B\0\x1B\0r\0\x95\0\x95\0s\0\xA4\0\xA4\0\x1C\0\x1C\0\x8F\0\xC7\0\xC7\0\xBB\0\xBB\0\x8E\0\x8F\0\xAA\0;\0\x84\0W\0W\0\x96\0\x96\0\xBA\0\x1D\0\x1D\0m\0m\0L\0\x1E\0\x8E\0Y\0=\0\xB8\0\x85\0X\0\xC2\0\x1F\0X\0\x1F\0\xAB\0\xAB\x002\x002\0\xC2\0K\0\x90\0\x90\0\xA5\0\xA5\0Y\0Z\0Z\0z\0{\0|\0[\0[\0\\\0}\0{\0\x07\0\x01\0n\0n\0\xB6\0]\0 \0 \0~\0~\0^\0\x85\0o\0o\0p\0\x97\x003\x003\0\x97\0\xA6\0\xA6\0p\0\x91\0!\0!\0\xB7\0\xB7\0\xB8\0\x98\0\x98\0\xB0\0\xB0\0q\0q\0:\0:\0\"\0_\0\"\0`\0a\0*\0-\0-\x004\0j\0\x7F\0\x99\0\x99\x004\0;\0#\0#\0\x9A\0\xC3\0\x9A\0\x7F\0$\0$\0b\0<\0*\0%\0%\0&\0'\0'\0<\0\x9E\0\x9E\0\xC3\0\xC4\x005\x005\0g\0c\0c\0d\0\xC5\0\xC5\0\xBC\0\x92\0\x92\0\xBC\0\x9B\0=\0e\0\xC0\0\xC0\0)\0)\0\xB1\0\xB1\0\x01\0\x80\0\xAE\0\x81\0f\0\0\0g\0") }) - }, - }; - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { - if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SCRIPT_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , ITER) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; - ($ provider : ty , DRY) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - }; - ($ provider : ty , DRY , ITER) => { - __impl_script_name_to_value_v1_marker!($provider); - #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { - fn dry_load(&self, req: icu_provider::DataRequest) -> Result { - if req.id.locale.is_default() { - Ok(Default::default()) - } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) - } - } - } - #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { - fn iter_ids(&self) -> Result>, icu_provider::DataError> { - Ok([Default::default()].into_iter().collect()) - } - } - }; -} -#[doc(inline)] -pub use __impl_script_name_to_value_v1_marker as impl_script_name_to_value_v1_marker; diff --git a/provider/data/properties/stubdata/script_name_to_value_v2_marker.rs.data b/provider/data/properties/stubdata/script_name_to_value_v2_marker.rs.data new file mode 100644 index 00000000000..e85e74323aa --- /dev/null +++ b/provider/data/properties/stubdata/script_name_to_value_v2_marker.rs.data @@ -0,0 +1,75 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +/// +/// Using this implementation will embed the following data in the binary's data segment: +/// * 2512B[^1] for the singleton data struct +/// +/// [^1]: these numbers can be smaller in practice due to linker deduplication +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_script_name_to_value_v2_marker { + ($ provider : ty) => { + #[clippy::msrv = "1.71.1"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.71.1"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_SCRIPT_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1yABCDEGHIJKLMNOPQRSTUVWXYZ\0\0\x01\x01\x02\x02\x02\x03\x03\x04\x04\x05\x05\x06\x07\x07\x07\x08\x08\x08\x08\t\t\tb\xE4\x99\xDA\x1B\x8A\xFCDb\x01lg\xE2\x92\x0C\x14:\n\xBF\xD4\xEE\x11\x1D/\xC7dfghnrv\n\x0E\x12\x16+Gl\xC2am\x03m\x91\x17\x91\x17ak\x91\x03hb\x91\x0Fom\x91\x11atolian_Hieroglyphs\x91\x0C\xC2am\n\xC2bn\x04\x82ic\x82\x918\xC3ein\x05\x07nian\x83\x90d\x83\xC2es\x06stan\x90et\x90e\xC7aehloru*1@DL^\xC4lmst\t\x0F\x19i\x90.nese\x90.u\x90rm\x90rs\x90va_Vah\x90v\xC2ak\x03k\x90/\x90/ng\x84ali\x84\xC2ak\x08iksuki\x91\x18s\x91\x18is\x900po\x85mofo\x85a\xC2hi\x06\x901mi\x901\x90\x1Elle\x90\x1E\xC2gh\ti\x90'nese\x90'\xC2di\x02\x90\x1Cd\x90\x1C\xC7ahiopuy:_cpz\x83\xC4knru\x03\x1A!m\x90f\xC2as\x11dian_Aboriginal\x90\x18\x90\x18i\x90Xan\x90Xcasian_Albanian\x91\x0F\xC4aeor\n\x11\x1A\xC2km\x04ma\x90f\x902r\x86okee\x86rasmian\x91-s\x91-rt\x903\xC2mp\x04mon\x80t\x87ic\x87\xC2mr\x03n\x911t\x90\x1Fneiform\x90U\xC2pr\x12r\xC2io\x04ot\x90\x1F_Minoan\x911\xC3ils\x05\x06llic\x88\x88\x904\xC5eiosu\x12#*-\xC2sv\x05eret\x89a\x8Anagari\x8A\xC2av\x03k\x91.es_Akuru\x91.gr\x91\"a\x91\"rt\x89pl\x90woyan\x90w\xC3glt\x1F3y\xC3dhp\x02\x04\x905\x906\x907tian_Hieroglyphs\x907\xC2by\x08a\x90xsan\x90xm\x91)aic\x91)hi\x8Bopic\x8B\xC5eloru\r\x19*=o\xC2kr\x02\x908\x8Cgian\x8Cag\x90(olitic\x90(\xC2nt\x08\xC2gm\x02\x91#\x91\x1Fh\x8Dic\x8D\xC2ae\x08n\x90ytha\x90y\xC2ek\x02k\x8E\x8E\xC3jnr\n\x16\xC2ar\x05rati\x8F\x8Fjala_Gondi\x91#\xC2mu\x06ukhi\x90\0\x90\0\xC7aeilmru=EOS\\`\xC2nt2\x90\x01\xC7bgiostu\x02\x08\x17\x19\x1B\x1D\x91\x1C\x90\x02ul\x90\x02\x90\x01fi_Rohingya\x91&\x90\x1B\x909\x90:noo\x90\x1Br\x91\x12an\x91\x12br\x90\x03ew\x90\x03ra\x90\x04gana\x90\x04uw\x91\x0Cn\xC2gp\x02\x90;\x91*kt\x90&ng\x90<\xC3mnt\x10>perial_Aramaic\x90d\xC3dhs\x03\ns\x90=erited\x81criptional_Pa\xC2hr\x06lavi\x90jthian\x90mal\x90\x0E\xC3apu\x10\x14\xC2mv\x03o\x91\x1Da\x90>nese\x90>an\x90Yrc\x91\x04\xC7ahinopt>}\x81\x85\x89\x8D\xC6ilntwy\x05\x08\x13(+thi\x90hi\x90?\xC2an\x02\x90\x06ada\x90\x05akana\x90\x06_Or_Hiragana\x90&i\x916ah_Li\x90?\xC5aimou\x0B\x1D&-r\x90)oshthi\x90)tan_Small_Script\x91/\xC2er\x03r\x90\x07\x90\x07j\x91\rki\x91\rdawadi\x91\x01ts\x91/da\x90\x05re\x90gel\x90zhi\x90h\xC5aeioy\x1F'KO\xC3not\x03\x08a\x90Z\x90\x08o\x90\x08\xC4fgin\x02\x04\x07\x90@\x90An\x90\t\x90\tpc\x90Bha\x90B\xC3mns\x06\x1Bb\x90 u\x90 \xC3abe\x02\x04\x90C\x90!ar_\xC2AB\x02\x90C\x90!u\x90sma\x90{\xC2cd\x07i\x90[an\x90[i\x90\\an\x90\\\xC9aeilortuyV\xAB\xAF\xB3\xC9\xCF\xD3\xDC\xC7hklnrsy\x0C\x14\x1C19E\xC2aj\x06jani\x91\x10\x91\x10a\x91$sar\x91$ayalam\x90\n\xC2di\x07\x90Daic\x90D\x90ichaean\x90ic\x91\x19hen\x91\x19aram_Gondi\x91\x1Fa\x90E\xC4denr\x0F\x1A(\xC2ef\tfaidrin\x91%\x91%tei_Mayek\x90cd\x90|e_Kikakui\x90|\xC2co\x02\x90}\x90Fitic_\xC2CH\x08ursive\x90}ieroglyphs\x90Fao\x90Lym\x90\n\xC3dno\x03\ri\x91\x13g\x90\x0Bolian\x90\x0Bn\x90bo\x91\x05o\x91\x05ei\x90clt\x91\x14ani\x91\x14\xC2am\x06nmar\x90\x0Cr\x90\x0C\xC7abeksuy.2BNRW\xC4bgnr\x08\x17#ataean\x90\x7F\xC2_m\tMundari\x917\x917d\x91+inagari\x91+b\x90~at\x90\x7Fw\xC2_a\tTai_Lue\x90+\x91\x1A\xC2go\x03b\x90t\x90Go\x90Ghu\x91\x06shu\x91\x06iakeng_Puachue_Hmong\x91*\xC5glrsu\x0B}\x8D\xA2\xC2ah\x03m\x90\ram\x90\r\xC3_cd\x07\nChiki\x90]k\x90]_\xC7HINPSTU\n\x11\x1F.ELungarian\x90 for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.id.locale.is_default() { + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SCRIPT_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , ITER) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; + ($ provider : ty , DRY) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + }; + ($ provider : ty , DRY , ITER) => { + __impl_script_name_to_value_v2_marker!($provider); + #[clippy::msrv = "1.71.1"] + impl icu_provider::DryDataProvider for $provider { + fn dry_load(&self, req: icu_provider::DataRequest) -> Result { + if req.id.locale.is_default() { + Ok(Default::default()) + } else { + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + } + } + } + #[clippy::msrv = "1.71.1"] + impl icu_provider::IterableDataProvider for $provider { + fn iter_ids(&self) -> Result>, icu_provider::DataError> { + Ok([Default::default()].into_iter().collect()) + } + } + }; +} +#[doc(inline)] +pub use __impl_script_name_to_value_v2_marker as impl_script_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/sentence_break_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/sentence_break_name_to_value_v2_marker.rs.data similarity index 63% rename from provider/data/properties/stubdata/sentence_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/sentence_break_name_to_value_v2_marker.rs.data index 8a5c52d64bb..0b08bb3bdd9 100644 --- a/provider/data/properties/stubdata/sentence_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/sentence_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 264B[^1] for the singleton data struct +/// * 164B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_sentence_break_name_to_value_v1_marker { +macro_rules! __impl_sentence_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x1C\0\0\0\0\0\x02\0\x07\0\t\0\x0E\0\x10\0\x12\0\x18\0\x1A\0 \0\"\0$\0&\0+\0-\x004\0;\0@\0B\0K\0M\0P\0R\0T\0V\0[\0]\0b\0ATATermCLCloseCREXExtendFOFormatLELFLOLowerNUNumericOLetterOtherSCSContinueSESepSPSpSTSTermUPUpperXX") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x01\0\x02\0\x02\0\x0B\0\x0C\0\x0C\0\x03\0\x03\0\x06\0\r\0\x04\0\x04\0\x05\0\x05\0\x06\0\0\0\x0E\0\x0E\0\x07\0\x07\0\x08\0\x08\0\t\0\t\0\n\0\n\0\0\0") }) - }, - }; + pub const SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xCAACEFLNOSUX\x06\x12\x1C&5@NmvT\x81erm\x81\xC3LRl\x01\x02\x82\x8Bose\x82\xC2Xx\x01\x8Ctend\x8C\xC2Oo\x01\x83rmat\x83\xC4EFOo\x01\x02\x03\x86\x8D\x84wer\x84\xC2Uu\x01\x85meric\x85\xC2Lt\x06etter\x86her\x80\xC6CEPTep\t\n\x0B\x10\x12\x8Eontinue\x8E\x87\x88\x89erm\x89p\x87\x88\xC2Pp\x01\x8Aper\x8AX\x80") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_SENTENCE_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_sentence_break_name_to_value_v1_marker!($provider); + __impl_sentence_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_sentence_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_sentence_break_name_to_value_v1_marker as impl_sentence_break_name_to_value_v1_marker; +pub use __impl_sentence_break_name_to_value_v2_marker as impl_sentence_break_name_to_value_v2_marker; diff --git a/provider/data/properties/stubdata/word_break_name_to_value_v1_marker.rs.data b/provider/data/properties/stubdata/word_break_name_to_value_v2_marker.rs.data similarity index 58% rename from provider/data/properties/stubdata/word_break_name_to_value_v1_marker.rs.data rename to provider/data/properties/stubdata/word_break_name_to_value_v2_marker.rs.data index 5fae824954a..fbd45c3992d 100644 --- a/provider/data/properties/stubdata/word_break_name_to_value_v1_marker.rs.data +++ b/provider/data/properties/stubdata/word_break_name_to_value_v2_marker.rs.data @@ -1,75 +1,70 @@ // @generated -/// Implement `DataProvider` on the given struct using the data +/// Implement `DataProvider` on the given struct using the data /// hardcoded in this file. This allows the struct to be used with /// `icu`'s `_unstable` constructors. /// /// Using this implementation will embed the following data in the binary's data segment: -/// * 447B[^1] for the singleton data struct +/// * 332B[^1] for the singleton data struct /// /// [^1]: these numbers can be smaller in practice due to linker deduplication #[doc(hidden)] #[macro_export] -macro_rules! __impl_word_break_name_to_value_v1_marker { +macro_rules! __impl_word_break_name_to_value_v2_marker { ($ provider : ty) => { #[clippy::msrv = "1.71.1"] const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; #[clippy::msrv = "1.71.1"] impl $provider { #[doc(hidden)] - pub const SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { - map: unsafe { - #[allow(unused_unsafe)] - zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b")\0\0\0\0\0\x07\0\t\0\x15\0\x17\0\x19\0\x1F\0)\0,\0.\08\0:\0@\0L\0N\0T\0W\0e\0r\0t\0v\0~\0\x80\0\x82\0\x84\0\x8D\0\x93\0\x9C\0\x9E\0\xA0\0\xA7\0\xA9\0\xAB\0\xB2\0\xB7\0\xC9\0\xCB\0\xD7\0\xD9\0\xE2\0\xE4\0ALetterCRDouble_QuoteDQEBE_BaseE_Base_GAZEBGEME_ModifierEXExtendExtendNumLetFOFormatGAZGlue_After_ZwjHebrew_LetterHLKAKatakanaLELFMBMidLetterMidNumMidNumLetMLMNNewlineNLNUNumericOtherRegional_IndicatorRISingle_QuoteSQWSegSpaceXXZWJ") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x08\0\x10\0\x10\0\x11\0\x11\0\x12\0\x12\0\x13\0\x13\0\x07\0\t\0\x07\0\x02\0\x02\0\x14\0\x14\0\x0E\0\x0E\0\x03\0\x03\0\x01\0\n\0\x0B\0\x04\0\x05\0\x0B\0\x04\0\x05\0\x0C\0\x0C\0\x06\0\x06\0\0\0\r\0\r\0\x0F\0\x0F\0\x16\0\0\0\x15\0") }) - }, - }; + pub const SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER: &'static ::DataStruct = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1qACDEFGHKLMNORSWXZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\t\x1BQ[p\x81\x8D\x93\xB0\xC6\xCB\xE1\xF1\xFB\xFDLetter\x81R\x88\xC2Qo\x02\x90\0uble_Quote\x90\0\xC5BMX_x\x05\x07\x08 \x90\x01G\x90\x02\x90\x03\x87\xC2BM\x0Base\x90\x01_GAZ\x90\x02odifier\x90\x03tend\x89NumLet\x87\xC2Oo\x01\x82rmat\x82\xC2Al\x03Z\x90\x04ue_After_Zwj\x90\x04\xC2Le\x01\x8Ebrew_Letter\x8E\xC2Aa\x01\x83takana\x83\xC2EF\x01\x81\x8A\xC4BLNi\x01\x02\x03\x8B\x84\x85d\xC2LN\x06etter\x84um\x85Let\x8B\xC4LUeu\x01\x02\x08\x8C\x86wline\x8Cmeric\x86ther\x80\xC2Ie\x01\x8Dgional_Indicator\x8D\xC2Qi\x01\x8Fngle_Quote\x8FSegSpace\x90\x06X\x80WJ\x90\x05") } } }; } #[clippy::msrv = "1.71.1"] - impl icu_provider::DataProvider for $provider { - fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { if req.id.locale.is_default() { - Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V1_MARKER), metadata: Default::default() }) + Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_WORD_BREAK_NAME_TO_VALUE_V2_MARKER), metadata: Default::default() }) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , ITER) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } } }; ($ provider : ty , DRY) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } }; ($ provider : ty , DRY , ITER) => { - __impl_word_break_name_to_value_v1_marker!($provider); + __impl_word_break_name_to_value_v2_marker!($provider); #[clippy::msrv = "1.71.1"] - impl icu_provider::DryDataProvider for $provider { + impl icu_provider::DryDataProvider for $provider { fn dry_load(&self, req: icu_provider::DataRequest) -> Result { if req.id.locale.is_default() { Ok(Default::default()) } else { - Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) + Err(icu_provider::DataErrorKind::InvalidRequest.with_req(::INFO, req)) } } } #[clippy::msrv = "1.71.1"] - impl icu_provider::IterableDataProvider for $provider { + impl icu_provider::IterableDataProvider for $provider { fn iter_ids(&self) -> Result>, icu_provider::DataError> { Ok([Default::default()].into_iter().collect()) } @@ -77,4 +72,4 @@ macro_rules! __impl_word_break_name_to_value_v1_marker { }; } #[doc(inline)] -pub use __impl_word_break_name_to_value_v1_marker as impl_word_break_name_to_value_v1_marker; +pub use __impl_word_break_name_to_value_v2_marker as impl_word_break_name_to_value_v2_marker; diff --git a/provider/registry/src/lib.rs b/provider/registry/src/lib.rs index 2f891d2253b..9f0a4ea4aa5 100644 --- a/provider/registry/src/lib.rs +++ b/provider/registry/src/lib.rs @@ -120,41 +120,41 @@ macro_rules! registry( icu::properties::provider::LogicalOrderExceptionV1Marker = "props/LOE@1", icu::properties::provider::LowercaseV1Marker = "props/Lower@1", icu::properties::provider::MathV1Marker = "props/Math@1", - icu::properties::provider::BidiClassNameToValueV1Marker = "propnames/from/bc@1", + icu::properties::provider::BidiClassNameToValueV2Marker = "propnames/from/bc@2", icu::properties::provider::BidiClassValueToLongNameV1Marker = "propnames/to/long/linear/bc@1", icu::properties::provider::BidiClassValueToShortNameV1Marker = "propnames/to/short/linear/bc@1", - icu::properties::provider::CanonicalCombiningClassNameToValueV1Marker = "propnames/from/ccc@1", + icu::properties::provider::CanonicalCombiningClassNameToValueV2Marker = "propnames/from/ccc@2", icu::properties::provider::CanonicalCombiningClassValueToLongNameV1Marker = "propnames/to/long/sparse/ccc@1", icu::properties::provider::CanonicalCombiningClassValueToShortNameV1Marker = "propnames/to/short/sparse/ccc@1", - icu::properties::provider::EastAsianWidthNameToValueV1Marker = "propnames/from/ea@1", + icu::properties::provider::EastAsianWidthNameToValueV2Marker = "propnames/from/ea@2", icu::properties::provider::EastAsianWidthValueToLongNameV1Marker = "propnames/to/long/linear/ea@1", icu::properties::provider::EastAsianWidthValueToShortNameV1Marker = "propnames/to/short/linear/ea@1", - icu::properties::provider::GeneralCategoryMaskNameToValueV1Marker = "propnames/from/gcm@1", - icu::properties::provider::GeneralCategoryNameToValueV1Marker = "propnames/from/gc@1", + icu::properties::provider::GeneralCategoryMaskNameToValueV2Marker = "propnames/from/gcm@2", + icu::properties::provider::GeneralCategoryNameToValueV2Marker = "propnames/from/gc@2", icu::properties::provider::GeneralCategoryValueToLongNameV1Marker = "propnames/to/long/linear/gc@1", icu::properties::provider::GeneralCategoryValueToShortNameV1Marker = "propnames/to/short/linear/gc@1", - icu::properties::provider::GraphemeClusterBreakNameToValueV1Marker = "propnames/from/GCB@1", + icu::properties::provider::GraphemeClusterBreakNameToValueV2Marker = "propnames/from/GCB@2", icu::properties::provider::GraphemeClusterBreakValueToLongNameV1Marker = "propnames/to/long/linear/GCB@1", icu::properties::provider::GraphemeClusterBreakValueToShortNameV1Marker = "propnames/to/short/linear/GCB@1", - icu::properties::provider::HangulSyllableTypeNameToValueV1Marker = "propnames/from/hst@1", + icu::properties::provider::HangulSyllableTypeNameToValueV2Marker = "propnames/from/hst@2", icu::properties::provider::HangulSyllableTypeValueToLongNameV1Marker = "propnames/to/long/linear/hst@1", icu::properties::provider::HangulSyllableTypeValueToShortNameV1Marker = "propnames/to/short/linear/hst@1", - icu::properties::provider::IndicSyllabicCategoryNameToValueV1Marker = "propnames/from/InSC@1", + icu::properties::provider::IndicSyllabicCategoryNameToValueV2Marker = "propnames/from/InSC@2", icu::properties::provider::IndicSyllabicCategoryValueToLongNameV1Marker = "propnames/to/long/linear/InSC@1", icu::properties::provider::IndicSyllabicCategoryValueToShortNameV1Marker = "propnames/to/short/linear/InSC@1", - icu::properties::provider::JoiningTypeNameToValueV1Marker = "propnames/from/jt@1", + icu::properties::provider::JoiningTypeNameToValueV2Marker = "propnames/from/jt@2", icu::properties::provider::JoiningTypeValueToLongNameV1Marker = "propnames/to/long/linear/jt@1", icu::properties::provider::JoiningTypeValueToShortNameV1Marker = "propnames/to/short/linear/jt@1", - icu::properties::provider::LineBreakNameToValueV1Marker = "propnames/from/lb@1", + icu::properties::provider::LineBreakNameToValueV2Marker = "propnames/from/lb@2", icu::properties::provider::LineBreakValueToLongNameV1Marker = "propnames/to/long/linear/lb@1", icu::properties::provider::LineBreakValueToShortNameV1Marker = "propnames/to/short/linear/lb@1", - icu::properties::provider::ScriptNameToValueV1Marker = "propnames/from/sc@1", + icu::properties::provider::ScriptNameToValueV2Marker = "propnames/from/sc@2", icu::properties::provider::ScriptValueToLongNameV1Marker = "propnames/to/long/linear/sc@1", icu::properties::provider::ScriptValueToShortNameV1Marker = "propnames/to/short/linear4/sc@1", - icu::properties::provider::SentenceBreakNameToValueV1Marker = "propnames/from/SB@1", + icu::properties::provider::SentenceBreakNameToValueV2Marker = "propnames/from/SB@2", icu::properties::provider::SentenceBreakValueToLongNameV1Marker = "propnames/to/long/linear/SB@1", icu::properties::provider::SentenceBreakValueToShortNameV1Marker = "propnames/to/short/linear/SB@1", - icu::properties::provider::WordBreakNameToValueV1Marker = "propnames/from/WB@1", + icu::properties::provider::WordBreakNameToValueV2Marker = "propnames/from/WB@2", icu::properties::provider::WordBreakValueToLongNameV1Marker = "propnames/to/long/linear/WB@1", icu::properties::provider::WordBreakValueToShortNameV1Marker = "propnames/to/short/linear/WB@1", icu::properties::provider::NfcInertV1Marker = "props/nfcinert@1", diff --git a/provider/source/data/debug/propnames/from/GCB@1.json b/provider/source/data/debug/propnames/from/GCB@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/GCB@1.json rename to provider/source/data/debug/propnames/from/GCB@2.json index 045ef6d4939..9743a7bd38a 100644 --- a/provider/source/data/debug/propnames/from/GCB@1.json +++ b/provider/source/data/debug/propnames/from/GCB@2.json @@ -1,15 +1,15 @@ { "map": { "CN": 1, - "Control": 1, "CR": 2, + "Control": 1, "EB": 13, - "E_Base": 13, - "E_Base_GAZ": 14, "EBG": 14, "EM": 15, - "E_Modifier": 15, "EX": 3, + "E_Base": 13, + "E_Base_GAZ": 14, + "E_Modifier": 15, "Extend": 3, "GAZ": 16, "Glue_After_Zwj": 16, @@ -20,8 +20,8 @@ "Other": 0, "PP": 11, "Prepend": 11, - "Regional_Indicator": 12, "RI": 12, + "Regional_Indicator": 12, "SM": 10, "SpacingMark": 10, "T": 8, diff --git a/provider/source/data/debug/propnames/from/InSC@1.json b/provider/source/data/debug/propnames/from/InSC@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/InSC@1.json rename to provider/source/data/debug/propnames/from/InSC@2.json diff --git a/provider/source/data/debug/propnames/from/SB@1.json b/provider/source/data/debug/propnames/from/SB@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/SB@1.json rename to provider/source/data/debug/propnames/from/SB@2.json index 017938ced69..be639c6753c 100644 --- a/provider/source/data/debug/propnames/from/SB@1.json +++ b/provider/source/data/debug/propnames/from/SB@2.json @@ -3,8 +3,8 @@ "AT": 1, "ATerm": 1, "CL": 2, - "Close": 2, "CR": 11, + "Close": 2, "EX": 12, "Extend": 12, "FO": 3, @@ -20,11 +20,11 @@ "SC": 14, "SContinue": 14, "SE": 7, - "Sep": 7, "SP": 8, - "Sp": 8, "ST": 9, "STerm": 9, + "Sep": 7, + "Sp": 8, "UP": 10, "Upper": 10, "XX": 0 diff --git a/provider/source/data/debug/propnames/from/WB@1.json b/provider/source/data/debug/propnames/from/WB@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/WB@1.json rename to provider/source/data/debug/propnames/from/WB@2.json index 8102b939a27..f7b74055e9b 100644 --- a/provider/source/data/debug/propnames/from/WB@1.json +++ b/provider/source/data/debug/propnames/from/WB@2.json @@ -2,42 +2,42 @@ "map": { "ALetter": 1, "CR": 8, - "Double_Quote": 16, "DQ": 16, + "Double_Quote": 16, "EB": 17, - "E_Base": 17, - "E_Base_GAZ": 18, "EBG": 18, "EM": 19, - "E_Modifier": 19, "EX": 7, + "E_Base": 17, + "E_Base_GAZ": 18, + "E_Modifier": 19, "Extend": 9, "ExtendNumLet": 7, "FO": 2, "Format": 2, "GAZ": 20, "Glue_After_Zwj": 20, - "Hebrew_Letter": 14, "HL": 14, + "Hebrew_Letter": 14, "KA": 3, "Katakana": 3, "LE": 1, "LF": 10, "MB": 11, + "ML": 4, + "MN": 5, "MidLetter": 4, "MidNum": 5, "MidNumLet": 11, - "ML": 4, - "MN": 5, - "Newline": 12, "NL": 12, "NU": 6, + "Newline": 12, "Numeric": 6, "Other": 0, - "Regional_Indicator": 13, "RI": 13, - "Single_Quote": 15, + "Regional_Indicator": 13, "SQ": 15, + "Single_Quote": 15, "WSegSpace": 22, "XX": 0, "ZWJ": 21 diff --git a/provider/source/data/debug/propnames/from/bc@1.json b/provider/source/data/debug/propnames/from/bc@2.json similarity index 96% rename from provider/source/data/debug/propnames/from/bc@1.json rename to provider/source/data/debug/propnames/from/bc@2.json index f679d155bc7..1e73b30b6b1 100644 --- a/provider/source/data/debug/propnames/from/bc@1.json +++ b/provider/source/data/debug/propnames/from/bc@2.json @@ -7,44 +7,44 @@ "B": 7, "BN": 18, "Boundary_Neutral": 18, - "Common_Separator": 6, "CS": 6, + "Common_Separator": 6, "EN": 2, "ES": 3, "ET": 4, "European_Number": 2, "European_Separator": 3, "European_Terminator": 4, - "First_Strong_Isolate": 19, "FSI": 19, + "First_Strong_Isolate": 19, "L": 0, + "LRE": 11, + "LRI": 20, + "LRO": 12, "Left_To_Right": 0, "Left_To_Right_Embedding": 11, "Left_To_Right_Isolate": 20, "Left_To_Right_Override": 12, - "LRE": 11, - "LRI": 20, - "LRO": 12, - "Nonspacing_Mark": 17, "NSM": 17, + "Nonspacing_Mark": 17, "ON": 10, "Other_Neutral": 10, - "Paragraph_Separator": 7, "PDF": 16, "PDI": 22, + "Paragraph_Separator": 7, "Pop_Directional_Format": 16, "Pop_Directional_Isolate": 22, "R": 1, + "RLE": 14, + "RLI": 21, + "RLO": 15, "Right_To_Left": 1, "Right_To_Left_Embedding": 14, "Right_To_Left_Isolate": 21, "Right_To_Left_Override": 15, - "RLE": 14, - "RLI": 21, - "RLO": 15, "S": 8, "Segment_Separator": 8, - "White_Space": 9, - "WS": 9 + "WS": 9, + "White_Space": 9 } } diff --git a/provider/source/data/debug/propnames/from/ccc@1.json b/provider/source/data/debug/propnames/from/ccc@2.json similarity index 98% rename from provider/source/data/debug/propnames/from/ccc@1.json rename to provider/source/data/debug/propnames/from/ccc@2.json index b4633593dad..9ce48912cd4 100644 --- a/provider/source/data/debug/propnames/from/ccc@1.json +++ b/provider/source/data/debug/propnames/from/ccc@2.json @@ -1,25 +1,25 @@ { "map": { "A": 230, - "Above": 230, - "Above_Left": 228, - "Above_Right": 232, "AL": 228, "AR": 232, "ATA": 214, "ATAR": 216, "ATB": 202, "ATBL": 200, + "Above": 230, + "Above_Left": 228, + "Above_Right": 232, "Attached_Above": 214, "Attached_Above_Right": 216, "Attached_Below": 202, "Attached_Below_Left": 200, "B": 220, + "BL": 218, + "BR": 222, "Below": 220, "Below_Left": 218, "Below_Right": 222, - "BL": 218, - "BR": 222, "CCC10": 10, "CCC103": 103, "CCC107": 107, @@ -63,21 +63,21 @@ "Double_Below": 233, "HANR": 6, "Han_Reading": 6, - "Iota_Subscript": 240, "IS": 240, - "Kana_Voicing": 8, + "Iota_Subscript": 240, "KV": 8, + "Kana_Voicing": 8, "L": 224, "Left": 224, "NK": 7, - "Not_Reordered": 0, "NR": 0, + "Not_Reordered": 0, "Nukta": 7, "OV": 1, "Overlay": 1, "R": 226, "Right": 226, - "Virama": 9, - "VR": 9 + "VR": 9, + "Virama": 9 } } diff --git a/provider/source/data/debug/propnames/from/ea@1.json b/provider/source/data/debug/propnames/from/ea@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/ea@1.json rename to provider/source/data/debug/propnames/from/ea@2.json diff --git a/provider/source/data/debug/propnames/from/gc@1.json b/provider/source/data/debug/propnames/from/gc@2.json similarity index 97% rename from provider/source/data/debug/propnames/from/gc@1.json rename to provider/source/data/debug/propnames/from/gc@2.json index 3918cdffcba..91edb85795a 100644 --- a/provider/source/data/debug/propnames/from/gc@1.json +++ b/provider/source/data/debug/propnames/from/gc@2.json @@ -4,7 +4,6 @@ "Cf": 16, "Close_Punctuation": 21, "Cn": 0, - "cntrl": 15, "Co": 17, "Connector_Punctuation": 22, "Control": 15, @@ -12,7 +11,6 @@ "Currency_Symbol": 25, "Dash_Punctuation": 19, "Decimal_Number": 9, - "digit": 9, "Enclosing_Mark": 7, "Final_Punctuation": 29, "Format": 16, @@ -61,6 +59,8 @@ "Uppercase_Letter": 1, "Zl": 13, "Zp": 14, - "Zs": 12 + "Zs": 12, + "cntrl": 15, + "digit": 9 } } diff --git a/provider/source/data/debug/propnames/from/gcm@1.json b/provider/source/data/debug/propnames/from/gcm@2.json similarity index 97% rename from provider/source/data/debug/propnames/from/gcm@1.json rename to provider/source/data/debug/propnames/from/gcm@2.json index 95527cae10e..e26eb0a2ef7 100644 --- a/provider/source/data/debug/propnames/from/gcm@1.json +++ b/provider/source/data/debug/propnames/from/gcm@2.json @@ -6,7 +6,6 @@ "Cf": 16, "Close_Punctuation": 21, "Cn": 0, - "cntrl": 15, "Co": 17, "Combining_Mark": 65533, "Connector_Punctuation": 22, @@ -15,7 +14,6 @@ "Currency_Symbol": 25, "Dash_Punctuation": 19, "Decimal_Number": 9, - "digit": 9, "Enclosing_Mark": 7, "Final_Punctuation": 29, "Format": 16, @@ -61,7 +59,6 @@ "Po": 23, "Private_Use": 17, "Ps": 20, - "punct": 65529, "Punctuation": 65529, "S": 65528, "Sc": 25, @@ -79,6 +76,9 @@ "Z": 65531, "Zl": 13, "Zp": 14, - "Zs": 12 + "Zs": 12, + "cntrl": 15, + "digit": 9, + "punct": 65529 } } diff --git a/provider/source/data/debug/propnames/from/hst@1.json b/provider/source/data/debug/propnames/from/hst@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/hst@1.json rename to provider/source/data/debug/propnames/from/hst@2.json index 6d55a2eedc6..8edc5fed7f1 100644 --- a/provider/source/data/debug/propnames/from/hst@1.json +++ b/provider/source/data/debug/propnames/from/hst@2.json @@ -1,11 +1,11 @@ { "map": { "L": 1, - "Leading_Jamo": 1, "LV": 4, - "LV_Syllable": 4, "LVT": 5, "LVT_Syllable": 5, + "LV_Syllable": 4, + "Leading_Jamo": 1, "NA": 0, "Not_Applicable": 0, "T": 3, diff --git a/provider/source/data/debug/propnames/from/jt@1.json b/provider/source/data/debug/propnames/from/jt@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/jt@1.json rename to provider/source/data/debug/propnames/from/jt@2.json diff --git a/provider/source/data/debug/propnames/from/lb@1.json b/provider/source/data/debug/propnames/from/lb@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/lb@1.json rename to provider/source/data/debug/propnames/from/lb@2.json index 7001311e1a6..ca41ac78cdb 100644 --- a/provider/source/data/debug/propnames/from/lb@1.json +++ b/provider/source/data/debug/propnames/from/lb@2.json @@ -2,14 +2,14 @@ "map": { "AI": 1, "AK": 43, + "AL": 2, + "AP": 44, + "AS": 45, "Aksara": 43, "Aksara_Prebase": 44, "Aksara_Start": 45, - "AL": 2, "Alphabetic": 2, "Ambiguous": 1, - "AP": 44, - "AS": 45, "B2": 3, "BA": 4, "BB": 5, @@ -18,68 +18,68 @@ "Break_Before": 5, "Break_Both": 3, "Break_Symbols": 27, - "Carriage_Return": 10, "CB": 7, "CJ": 37, "CL": 8, + "CM": 9, + "CP": 36, + "CR": 10, + "Carriage_Return": 10, "Close_Parenthesis": 36, "Close_Punctuation": 8, - "CM": 9, "Combining_Mark": 9, "Complex_Context": 24, "Conditional_Japanese_Starter": 37, "Contingent_Break": 7, - "CP": 36, - "CR": 10, "EB": 40, - "E_Base": 40, "EM": 41, - "E_Modifier": 41, "EX": 11, + "E_Base": 40, + "E_Modifier": 41, "Exclamation": 11, "GL": 12, "Glue": 12, "H2": 31, "H3": 32, - "Hebrew_Letter": 38, "HL": 38, "HY": 13, + "Hebrew_Letter": 38, "Hyphen": 13, "ID": 14, - "Ideographic": 14, "IN": 15, + "IS": 16, + "Ideographic": 14, "Infix_Numeric": 16, "Inseparable": 15, "Inseperable": 15, - "IS": 16, "JL": 33, "JT": 34, "JV": 35, "LF": 17, "Line_Feed": 17, "Mandatory_Break": 6, - "Next_Line": 29, "NL": 29, - "Nonstarter": 18, "NS": 18, "NU": 19, + "Next_Line": 29, + "Nonstarter": 18, "Numeric": 19, "OP": 20, "Open_Punctuation": 20, "PO": 21, - "Postfix_Numeric": 21, "PR": 22, + "Postfix_Numeric": 21, "Prefix_Numeric": 22, "QU": 23, "Quotation": 23, - "Regional_Indicator": 39, "RI": 39, + "Regional_Indicator": 39, "SA": 24, "SG": 25, "SP": 26, + "SY": 27, "Space": 26, "Surrogate": 25, - "SY": 27, "Unknown": 0, "VF": 46, "VI": 47, diff --git a/provider/source/data/debug/propnames/from/sc@1.json b/provider/source/data/debug/propnames/from/sc@2.json similarity index 100% rename from provider/source/data/debug/propnames/from/sc@1.json rename to provider/source/data/debug/propnames/from/sc@2.json index 64a8338ac0c..7fb1428811e 100644 --- a/provider/source/data/debug/propnames/from/sc@1.json +++ b/provider/source/data/debug/propnames/from/sc@2.json @@ -209,14 +209,14 @@ "Myanmar": 28, "Mymr": 28, "Nabataean": 143, - "Nagm": 199, "Nag_Mundari": 199, + "Nagm": 199, "Nand": 187, "Nandinagari": 187, "Narb": 142, "Nbat": 143, - "Newa": 170, "New_Tai_Lue": 59, + "Newa": 170, "Nkgb": 132, "Nko": 87, "Nkoo": 87, @@ -247,8 +247,8 @@ "Pahawh_Hmong": 75, "Palm": 144, "Palmyrene": 144, - "Pauc": 165, "Pau_Cin_Hau": 165, + "Pauc": 165, "Perm": 89, "Phag": 90, "Phags_Pa": 90, diff --git a/provider/source/src/properties/enum_codepointtrie.rs b/provider/source/src/properties/enum_codepointtrie.rs index c99d9167755..0a5f7a7a6ef 100644 --- a/provider/source/src/properties/enum_codepointtrie.rs +++ b/provider/source/src/properties/enum_codepointtrie.rs @@ -9,6 +9,7 @@ use icu_provider::prelude::*; use std::collections::BTreeMap; use std::collections::HashSet; use std::convert::TryFrom; +use zerotrie::ZeroTrieSimpleAscii; use zerovec::ule::NichedOption; impl SourceDataProvider { @@ -54,26 +55,17 @@ where { let mut map = BTreeMap::new(); for value in values { - let discr = transform_u32(value.discr)?; - map.insert( - NormalizedPropertyNameStr::boxed_from_bytes(value.long.as_bytes()), - discr, - ); + let discr = transform_u32(value.discr)? as usize; + map.insert(value.long.as_bytes(), discr); if let Some(ref short) = value.short { - map.insert( - NormalizedPropertyNameStr::boxed_from_bytes(short.as_bytes()), - discr, - ); + map.insert(short.as_bytes(), discr); } for alias in &value.aliases { - map.insert( - NormalizedPropertyNameStr::boxed_from_bytes(alias.as_bytes()), - discr, - ); + map.insert(alias.as_bytes(), discr); } } Ok(PropertyValueNameToEnumMapV1 { - map: map.into_iter().collect(), + map: ZeroTrieSimpleAscii::from_iter(map).convert_store(), }) } @@ -381,15 +373,15 @@ macro_rules! expand { } // Special handling for GeneralCategoryMask -impl DataProvider for SourceDataProvider { +impl DataProvider for SourceDataProvider { fn load( &self, req: DataRequest, - ) -> Result, DataError> { + ) -> Result, DataError> { use icu::properties::props::GeneralCategoryGroup; use zerovec::ule::AsULE; - self.check_req::(req)?; + self.check_req::(req)?; let data = self.get_mask_prop("gcm")?; let data_struct = get_prop_values_map(&data.values, |v| { @@ -410,7 +402,7 @@ impl DataProvider for SourceDataProvider } } -impl crate::IterableDataProviderCached +impl crate::IterableDataProviderCached for SourceDataProvider { fn iter_ids_cached(&self) -> Result>, DataError> { @@ -422,7 +414,7 @@ impl crate::IterableDataProviderCached expand!( ( CanonicalCombiningClassV1Marker, - CanonicalCombiningClassNameToValueV1Marker, + CanonicalCombiningClassNameToValueV2Marker, ( sparse: CanonicalCombiningClassValueToShortNameV1Marker, CanonicalCombiningClassValueToLongNameV1Marker @@ -431,7 +423,7 @@ expand!( ), ( GeneralCategoryV1Marker, - GeneralCategoryNameToValueV1Marker, + GeneralCategoryNameToValueV2Marker, ( linear: GeneralCategoryValueToShortNameV1Marker, GeneralCategoryValueToLongNameV1Marker @@ -440,7 +432,7 @@ expand!( ), ( BidiClassV1Marker, - BidiClassNameToValueV1Marker, + BidiClassNameToValueV2Marker, ( linear: BidiClassValueToShortNameV1Marker, BidiClassValueToLongNameV1Marker @@ -449,7 +441,7 @@ expand!( ), ( ScriptV1Marker, - ScriptNameToValueV1Marker, + ScriptNameToValueV2Marker, ( linear4: ScriptValueToShortNameV1Marker, ScriptValueToLongNameV1Marker @@ -458,7 +450,7 @@ expand!( ), ( HangulSyllableTypeV1Marker, - HangulSyllableTypeNameToValueV1Marker, + HangulSyllableTypeNameToValueV2Marker, ( linear: HangulSyllableTypeValueToShortNameV1Marker, HangulSyllableTypeValueToLongNameV1Marker @@ -467,7 +459,7 @@ expand!( ), ( EastAsianWidthV1Marker, - EastAsianWidthNameToValueV1Marker, + EastAsianWidthNameToValueV2Marker, ( linear: EastAsianWidthValueToShortNameV1Marker, EastAsianWidthValueToLongNameV1Marker @@ -476,7 +468,7 @@ expand!( ), ( IndicSyllabicCategoryV1Marker, - IndicSyllabicCategoryNameToValueV1Marker, + IndicSyllabicCategoryNameToValueV2Marker, ( linear: IndicSyllabicCategoryValueToShortNameV1Marker, IndicSyllabicCategoryValueToLongNameV1Marker @@ -485,7 +477,7 @@ expand!( ), ( LineBreakV1Marker, - LineBreakNameToValueV1Marker, + LineBreakNameToValueV2Marker, ( linear: LineBreakValueToShortNameV1Marker, LineBreakValueToLongNameV1Marker @@ -494,7 +486,7 @@ expand!( ), ( GraphemeClusterBreakV1Marker, - GraphemeClusterBreakNameToValueV1Marker, + GraphemeClusterBreakNameToValueV2Marker, ( linear: GraphemeClusterBreakValueToShortNameV1Marker, GraphemeClusterBreakValueToLongNameV1Marker @@ -503,7 +495,7 @@ expand!( ), ( WordBreakV1Marker, - WordBreakNameToValueV1Marker, + WordBreakNameToValueV2Marker, ( linear: WordBreakValueToShortNameV1Marker, WordBreakValueToLongNameV1Marker @@ -512,7 +504,7 @@ expand!( ), ( SentenceBreakV1Marker, - SentenceBreakNameToValueV1Marker, + SentenceBreakNameToValueV2Marker, ( linear: SentenceBreakValueToShortNameV1Marker, SentenceBreakValueToLongNameV1Marker @@ -521,7 +513,7 @@ expand!( ), ( JoiningTypeV1Marker, - JoiningTypeNameToValueV1Marker, + JoiningTypeNameToValueV2Marker, ( linear: JoiningTypeValueToShortNameV1Marker, JoiningTypeValueToLongNameV1Marker