From c2b78e7dcc045c1f84fc3ddd6f3da81e11b7d6b0 Mon Sep 17 00:00:00 2001 From: "Shane F. Carr" Date: Thu, 9 May 2024 17:25:29 -0700 Subject: [PATCH] Add Hangul_Syllable_Type (#4885) Fixes #4884 --- components/properties/src/lib.rs | 4 +- components/properties/src/maps.rs | 26 + components/properties/src/props.rs | 108 +++ components/properties/src/provider.rs | 14 + components/properties/src/trievalue.rs | 16 +- ffi/capi/bindings/c/ICU4XCodePointMapData8.h | 2 + .../c/ICU4XPropertyValueNameToEnumMapper.h | 4 +- .../bindings/cpp/ICU4XCodePointMapData8.h | 2 + .../bindings/cpp/ICU4XCodePointMapData8.hpp | 15 + .../ICU4XGeneralCategoryNameToMaskMapper.hpp | 4 +- .../cpp/ICU4XPropertyValueNameToEnumMapper.h | 4 +- .../ICU4XPropertyValueNameToEnumMapper.hpp | 27 +- .../bindings/dart/CodePointMapData8.g.dart | 16 + .../GeneralCategoryNameToMaskMapper.g.dart | 4 +- .../dart/PropertyValueNameToEnumMapper.g.dart | 32 +- .../bindings/js/ICU4XCodePointMapData8.d.ts | 7 + .../bindings/js/ICU4XCodePointMapData8.mjs | 17 + .../ICU4XGeneralCategoryNameToMaskMapper.d.ts | 4 +- .../ICU4XPropertyValueNameToEnumMapper.d.ts | 15 +- .../js/ICU4XPropertyValueNameToEnumMapper.mjs | 21 +- ffi/capi/src/properties_maps.rs | 13 + ffi/capi/src/properties_names.rs | 87 +- ffi/capi/tests/missing_apis.txt | 23 +- provider/baked/properties/data/macros.rs | 28 + .../data/macros/propnames_from_hst_v1.rs.data | 47 + .../propnames_to_long_linear_hst_v1.rs.data | 42 + .../propnames_to_short_linear_hst_v1.rs.data | 42 + .../data/macros/props_hst_v1.rs.data | 42 + provider/datagen/src/provider/tests/data.rs | 1 + provider/datagen/src/registry.rs | 4 + .../icuexport/uprops/enum_codepointtrie.rs | 9 + provider/datagen/tests/data/baked/macros.rs | 28 + .../macros/propnames_from_hst_v1.rs.data | 47 + .../propnames_to_long_linear_hst_v1.rs.data | 42 + .../propnames_to_short_linear_hst_v1.rs.data | 42 + .../data/baked/macros/props_hst_v1.rs.data | 42 + provider/datagen/tests/data/baked/mod.rs | 8 + .../data/icuexport/uprops/small/hst.toml | 885 ++++++++++++++++++ .../data/json/propnames/from/hst@1/und.json | 16 + .../propnames/to/long/linear/hst@1/und.json | 10 + .../propnames/to/short/linear/hst@1/und.json | 10 + .../tests/data/json/props/hst@1/und.json | 556 +++++++++++ .../tests/data/postcard/fingerprints.csv | 4 + tools/testdata-scripts/globs.rs.data | 1 + 44 files changed, 2319 insertions(+), 52 deletions(-) create mode 100644 provider/baked/properties/data/macros/propnames_from_hst_v1.rs.data create mode 100644 provider/baked/properties/data/macros/propnames_to_long_linear_hst_v1.rs.data create mode 100644 provider/baked/properties/data/macros/propnames_to_short_linear_hst_v1.rs.data create mode 100644 provider/baked/properties/data/macros/props_hst_v1.rs.data create mode 100644 provider/datagen/tests/data/baked/macros/propnames_from_hst_v1.rs.data create mode 100644 provider/datagen/tests/data/baked/macros/propnames_to_long_linear_hst_v1.rs.data create mode 100644 provider/datagen/tests/data/baked/macros/propnames_to_short_linear_hst_v1.rs.data create mode 100644 provider/datagen/tests/data/baked/macros/props_hst_v1.rs.data create mode 100644 provider/datagen/tests/data/icuexport/uprops/small/hst.toml create mode 100644 provider/datagen/tests/data/json/propnames/from/hst@1/und.json create mode 100644 provider/datagen/tests/data/json/propnames/to/long/linear/hst@1/und.json create mode 100644 provider/datagen/tests/data/json/propnames/to/short/linear/hst@1/und.json create mode 100644 provider/datagen/tests/data/json/props/hst@1/und.json diff --git a/components/properties/src/lib.rs b/components/properties/src/lib.rs index 20fdc9f3026..dd414a71d47 100644 --- a/components/properties/src/lib.rs +++ b/components/properties/src/lib.rs @@ -92,8 +92,8 @@ mod trievalue; pub use props::{ BidiClass, CanonicalCombiningClass, EastAsianWidth, GeneralCategory, GeneralCategoryGroup, - GraphemeClusterBreak, IndicSyllabicCategory, JoiningType, LineBreak, Script, SentenceBreak, - WordBreak, + GraphemeClusterBreak, HangulSyllableType, IndicSyllabicCategory, JoiningType, LineBreak, + Script, SentenceBreak, WordBreak, }; /// Module for working with the names of property values diff --git a/components/properties/src/maps.rs b/components/properties/src/maps.rs index 79491401a0c..7367f152d15 100644 --- a/components/properties/src/maps.rs +++ b/components/properties/src/maps.rs @@ -416,6 +416,32 @@ make_map_property! { pub fn load_script(); } +make_map_property! { + property: "Hangul_Syllable_Type"; + marker: HangulSyllableTypeProperty; + value: crate::HangulSyllableType; + keyed_data_marker: HangulSyllableTypeV1Marker; + func: + /// Returns a [`CodePointMapDataBorrowed`] for the Hangul_Syllable_Type + /// Unicode enumerated property. See [`HangulSyllableType`]. + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::{maps, HangulSyllableType}; + /// + /// assert_eq!(maps::hangul_syllable_type().get('ᄀ'), HangulSyllableType::LeadingJamo); // U+1100 + /// assert_eq!(maps::hangul_syllable_type().get('가'), HangulSyllableType::LeadingVowelSyllable); // U+AC00 + /// ``` + + pub const hangul_syllable_type => SINGLETON_PROPS_HST_V1; + pub fn load_hangul_syllable_type(); +} + make_map_property! { property: "East_Asian_Width"; marker: EastAsianWidthProperty; diff --git a/components/properties/src/props.rs b/components/properties/src/props.rs index 4ba742292a5..65b492f8898 100644 --- a/components/properties/src/props.rs +++ b/components/properties/src/props.rs @@ -1578,6 +1578,106 @@ impl_value_getter! { } } +/// Enumerated property Hangul_Syllable_Type +/// +/// The Unicode standard provides both precomposed Hangul syllables and conjoining Jamo to compose +/// arbitrary Hangul syllables. This property provies that ontology of Hangul code points. +/// +/// For more information, see the [Unicode Korean FAQ](https://www.unicode.org/faq/korean.html). +#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "datagen", derive(databake::Bake))] +#[cfg_attr(feature = "datagen", databake(path = icu_properties))] +#[allow(clippy::exhaustive_structs)] // newtype +#[repr(transparent)] +#[zerovec::make_ule(HangulSyllableTypeULE)] +pub struct HangulSyllableType(pub u8); + +create_const_array! { +#[allow(non_upper_case_globals)] +impl HangulSyllableType { + /// (`NA`) not applicable (e.g. not a Hangul code point). + pub const NotApplicable: HangulSyllableType = HangulSyllableType(0); + /// (`L`) a conjoining leading consonant Jamo. + pub const LeadingJamo: HangulSyllableType = HangulSyllableType(1); + /// (`V`) a conjoining vowel Jamo. + pub const VowelJamo: HangulSyllableType = HangulSyllableType(2); + /// (`T`) a conjoining trailing consonent Jamo. + pub const TrailingJamo: HangulSyllableType = HangulSyllableType(3); + /// (`LV`) a precomposed syllable with a leading consonant and a vowel. + pub const LeadingVowelSyllable: HangulSyllableType = HangulSyllableType(4); + /// (`LVT`) a precomposed syllable with a leading consonant, a vowel, and a trailing consonant. + pub const LeadingVowelTrailingSyllable: HangulSyllableType = HangulSyllableType(5); +} +} + +impl_value_getter! { + markers: HangulSyllableTypeNameToValueV1Marker / SINGLETON_PROPNAMES_FROM_HST_V1, HangulSyllableTypeValueToShortNameV1Marker / SINGLETON_PROPNAMES_TO_SHORT_LINEAR_HST_V1, HangulSyllableTypeValueToLongNameV1Marker / SINGLETON_PROPNAMES_TO_LONG_LINEAR_HST_V1; + impl HangulSyllableType { + /// Return a [`PropertyValueNameToEnumMapper`], capable of looking up values + /// from strings for the `Bidi_Class` enumerated property + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::HangulSyllableType; + /// + /// let lookup = HangulSyllableType::name_to_enum_mapper(); + /// // short name for value + /// assert_eq!(lookup.get_strict("L"), Some(HangulSyllableType::LeadingJamo)); + /// assert_eq!(lookup.get_strict("LV"), Some(HangulSyllableType::LeadingVowelSyllable)); + /// // long name for value + /// assert_eq!(lookup.get_strict("Leading_Jamo"), Some(HangulSyllableType::LeadingJamo)); + /// assert_eq!(lookup.get_strict("LV_Syllable"), Some(HangulSyllableType::LeadingVowelSyllable)); + /// // name has incorrect casing + /// assert_eq!(lookup.get_strict("lv"), None); + /// // loose matching of name + /// assert_eq!(lookup.get_loose("lv"), Some(HangulSyllableType::LeadingVowelSyllable)); + /// // fake property + /// assert_eq!(lookup.get_strict("LT_Syllable"), None); + /// ``` + pub fn get_name_to_enum_mapper() / name_to_enum_mapper(); + /// Return a [`PropertyEnumToValueNameLinearMapper`], capable of looking up short names + /// for values of the `Bidi_Class` enumerated property + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::HangulSyllableType; + /// + /// let lookup = HangulSyllableType::enum_to_short_name_mapper(); + /// assert_eq!(lookup.get(HangulSyllableType::LeadingJamo), Some("L")); + /// assert_eq!(lookup.get(HangulSyllableType::LeadingVowelSyllable), Some("LV")); + /// ``` + pub fn get_enum_to_short_name_mapper() / enum_to_short_name_mapper() -> PropertyEnumToValueNameLinearMapper / PropertyEnumToValueNameLinearMapperBorrowed; + /// Return a [`PropertyEnumToValueNameLinearMapper`], capable of looking up long names + /// for values of the `Bidi_Class` enumerated property + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::HangulSyllableType; + /// + /// let lookup = HangulSyllableType::enum_to_long_name_mapper(); + /// assert_eq!(lookup.get(HangulSyllableType::LeadingJamo), Some("Leading_Jamo")); + /// assert_eq!(lookup.get(HangulSyllableType::LeadingVowelSyllable), Some("LV_Syllable")); + /// ``` + pub fn get_enum_to_long_name_mapper() / enum_to_long_name_mapper() -> PropertyEnumToValueNameLinearMapper / PropertyEnumToValueNameLinearMapperBorrowed; + } +} + /// Enumerated property East_Asian_Width. /// /// See "Definition" in UAX #11 for the summary of each property value: @@ -2616,4 +2716,12 @@ mod test_enumerated_property_completeness { BidiClass::ALL_CONSTS, ); } + + #[test] + fn test_hst() { + check_enum( + crate::provider::Baked::SINGLETON_PROPNAMES_FROM_HST_V1, + HangulSyllableType::ALL_CONSTS, + ); + } } diff --git a/components/properties/src/provider.rs b/components/properties/src/provider.rs index 2f906465213..52f8961dde9 100644 --- a/components/properties/src/provider.rs +++ b/components/properties/src/provider.rs @@ -57,6 +57,7 @@ const _: () = { icu_properties_data::impl_propnames_from_ea_v1!(Baked); icu_properties_data::impl_propnames_from_gc_v1!(Baked); icu_properties_data::impl_propnames_from_gcm_v1!(Baked); + icu_properties_data::impl_propnames_from_hst_v1!(Baked); icu_properties_data::impl_propnames_from_insc_v1!(Baked); icu_properties_data::impl_propnames_from_jt_v1!(Baked); icu_properties_data::impl_propnames_from_lb_v1!(Baked); @@ -67,6 +68,7 @@ const _: () = { icu_properties_data::impl_propnames_to_long_linear_ea_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_gc_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_gcb_v1!(Baked); + icu_properties_data::impl_propnames_to_long_linear_hst_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_insc_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_jt_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_lb_v1!(Baked); @@ -78,6 +80,7 @@ const _: () = { icu_properties_data::impl_propnames_to_short_linear_ea_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_gc_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_gcb_v1!(Baked); + icu_properties_data::impl_propnames_to_short_linear_hst_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_insc_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_jt_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_lb_v1!(Baked); @@ -128,6 +131,7 @@ const _: () = { icu_properties_data::impl_props_gr_link_v1!(Baked); icu_properties_data::impl_props_graph_v1!(Baked); icu_properties_data::impl_props_hex_v1!(Baked); + icu_properties_data::impl_props_hst_v1!(Baked); icu_properties_data::impl_props_hyphen_v1!(Baked); icu_properties_data::impl_props_idc_v1!(Baked); icu_properties_data::impl_props_ideo_v1!(Baked); @@ -840,6 +844,16 @@ expand!( "sc", Script ), + ( + HangulSyllableTypeV1Marker, + HangulSyllableTypeNameToValueV1Marker, + ( + linear: HangulSyllableTypeValueToShortNameV1Marker, + HangulSyllableTypeValueToLongNameV1Marker + ), + "hst", + HangulSyllableType + ), ( EastAsianWidthV1Marker, EastAsianWidthNameToValueV1Marker, diff --git a/components/properties/src/trievalue.rs b/components/properties/src/trievalue.rs index d6da6880c67..8287d1f9e29 100644 --- a/components/properties/src/trievalue.rs +++ b/components/properties/src/trievalue.rs @@ -8,8 +8,8 @@ use crate::provider::bidi_data::{ use crate::script::ScriptWithExt; use crate::{ BidiClass, CanonicalCombiningClass, EastAsianWidth, GeneralCategory, GeneralCategoryGroup, - GraphemeClusterBreak, IndicSyllabicCategory, JoiningType, LineBreak, Script, SentenceBreak, - WordBreak, + GraphemeClusterBreak, HangulSyllableType, IndicSyllabicCategory, JoiningType, LineBreak, + Script, SentenceBreak, WordBreak, }; use core::convert::TryInto; use core::num::TryFromIntError; @@ -69,6 +69,18 @@ impl TrieValue for Script { } } +impl TrieValue for HangulSyllableType { + type TryFromU32Error = TryFromIntError; + + fn try_from_u32(i: u32) -> Result { + u8::try_from(i).map(Self) + } + + fn to_u32(self) -> u32 { + u32::from(self.0) + } +} + impl TrieValue for ScriptWithExt { type TryFromU32Error = TryFromIntError; diff --git a/ffi/capi/bindings/c/ICU4XCodePointMapData8.h b/ffi/capi/bindings/c/ICU4XCodePointMapData8.h index 59a983fb858..5796c8cdd26 100644 --- a/ffi/capi/bindings/c/ICU4XCodePointMapData8.h +++ b/ffi/capi/bindings/c/ICU4XCodePointMapData8.h @@ -43,6 +43,8 @@ diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_loa diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_hangul_syllable_type(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_indic_syllabic_category(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_line_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/bindings/c/ICU4XPropertyValueNameToEnumMapper.h b/ffi/capi/bindings/c/ICU4XPropertyValueNameToEnumMapper.h index 54000ce3384..b45480dde61 100644 --- a/ffi/capi/bindings/c/ICU4XPropertyValueNameToEnumMapper.h +++ b/ffi/capi/bindings/c/ICU4XPropertyValueNameToEnumMapper.h @@ -27,10 +27,12 @@ int16_t ICU4XPropertyValueNameToEnumMapper_get_loose(const ICU4XPropertyValueNam diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_general_category(const ICU4XDataProvider* provider); -diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_bidi_class(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_bidi_class(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_line_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.h b/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.h index 59a983fb858..5796c8cdd26 100644 --- a/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.h +++ b/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.h @@ -43,6 +43,8 @@ diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_loa diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_hangul_syllable_type(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_indic_syllabic_category(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_line_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.hpp b/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.hpp index 179b7b0c7ef..62c1d909326 100644 --- a/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.hpp +++ b/ffi/capi/bindings/cpp/ICU4XCodePointMapData8.hpp @@ -117,6 +117,11 @@ class ICU4XCodePointMapData8 { */ static diplomat::result load_east_asian_width(const ICU4XDataProvider& provider); + /** + * See the [Rust documentation for `hangul_syllable_type`](https://docs.rs/icu/latest/icu/properties/maps/fn.hangul_syllable_type.html) for more information. + */ + static diplomat::result load_hangul_syllable_type(const ICU4XDataProvider& provider); + /** * See the [Rust documentation for `indic_syllabic_category`](https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html) for more information. */ @@ -211,6 +216,16 @@ inline diplomat::result ICU4XCodePointMapDat } return diplomat_result_out_value; } +inline diplomat::result ICU4XCodePointMapData8::load_hangul_syllable_type(const ICU4XDataProvider& provider) { + auto diplomat_result_raw_out_value = capi::ICU4XCodePointMapData8_load_hangul_syllable_type(provider.AsFFI()); + diplomat::result diplomat_result_out_value; + if (diplomat_result_raw_out_value.is_ok) { + diplomat_result_out_value = diplomat::Ok(ICU4XCodePointMapData8(diplomat_result_raw_out_value.ok)); + } else { + diplomat_result_out_value = diplomat::Err(static_cast(diplomat_result_raw_out_value.err)); + } + return diplomat_result_out_value; +} inline diplomat::result ICU4XCodePointMapData8::load_indic_syllabic_category(const ICU4XDataProvider& provider) { auto diplomat_result_raw_out_value = capi::ICU4XCodePointMapData8_load_indic_syllabic_category(provider.AsFFI()); diplomat::result diplomat_result_out_value; diff --git a/ffi/capi/bindings/cpp/ICU4XGeneralCategoryNameToMaskMapper.hpp b/ffi/capi/bindings/cpp/ICU4XGeneralCategoryNameToMaskMapper.hpp index b5b1f3567e4..dd0e516dc1b 100644 --- a/ffi/capi/bindings/cpp/ICU4XGeneralCategoryNameToMaskMapper.hpp +++ b/ffi/capi/bindings/cpp/ICU4XGeneralCategoryNameToMaskMapper.hpp @@ -27,7 +27,7 @@ struct ICU4XGeneralCategoryNameToMaskMapperDeleter { /** * A type capable of looking up General Category mask values from a string name. * - * See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper) for more information. + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper) for more information. * * See the [Rust documentation for `PropertyValueNameToEnumMapper`](https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapper.html) for more information. */ @@ -49,7 +49,7 @@ class ICU4XGeneralCategoryNameToMaskMapper { uint32_t get_loose(const std::string_view name) const; /** - * See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper) for more information. + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper) for more information. */ static diplomat::result load(const ICU4XDataProvider& provider); inline const capi::ICU4XGeneralCategoryNameToMaskMapper* AsFFI() const { return this->inner.get(); } diff --git a/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.h b/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.h index 54000ce3384..b45480dde61 100644 --- a/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.h +++ b/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.h @@ -27,10 +27,12 @@ int16_t ICU4XPropertyValueNameToEnumMapper_get_loose(const ICU4XPropertyValueNam diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_general_category(const ICU4XDataProvider* provider); -diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_bidi_class(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_bidi_class(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_line_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.hpp b/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.hpp index ee0fecdc858..c5a35f04c3a 100644 --- a/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.hpp +++ b/ffi/capi/bindings/cpp/ICU4XPropertyValueNameToEnumMapper.hpp @@ -53,20 +53,25 @@ class ICU4XPropertyValueNameToEnumMapper { int16_t get_loose(const std::string_view name) const; /** - * See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.get_name_to_enum_mapper) for more information. + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.name_to_enum_mapper) for more information. */ static diplomat::result load_general_category(const ICU4XDataProvider& provider); /** - * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper) for more information. + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.HangulSyllableType.html#method.name_to_enum_mapper) for more information. */ - static diplomat::result load_bidi_class(const ICU4XDataProvider& provider); + static diplomat::result load_hangul_syllable_type(const ICU4XDataProvider& provider); /** * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.EastAsianWidth.html#method.name_to_enum_mapper) for more information. */ static diplomat::result load_east_asian_width(const ICU4XDataProvider& provider); + /** + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper) for more information. + */ + static diplomat::result load_bidi_class(const ICU4XDataProvider& provider); + /** * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper) for more information. */ @@ -78,7 +83,7 @@ class ICU4XPropertyValueNameToEnumMapper { static diplomat::result load_line_break(const ICU4XDataProvider& provider); /** - * See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.get_name_to_enum_mapper) for more information. + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.name_to_enum_mapper) for more information. */ static diplomat::result load_grapheme_cluster_break(const ICU4XDataProvider& provider); @@ -124,8 +129,8 @@ inline diplomat::result ICU4XPro } return diplomat_result_out_value; } -inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_bidi_class(const ICU4XDataProvider& provider) { - auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_bidi_class(provider.AsFFI()); +inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_hangul_syllable_type(const ICU4XDataProvider& provider) { + auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(provider.AsFFI()); diplomat::result diplomat_result_out_value; if (diplomat_result_raw_out_value.is_ok) { diplomat_result_out_value = diplomat::Ok(ICU4XPropertyValueNameToEnumMapper(diplomat_result_raw_out_value.ok)); @@ -144,6 +149,16 @@ inline diplomat::result ICU4XPro } return diplomat_result_out_value; } +inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_bidi_class(const ICU4XDataProvider& provider) { + auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_bidi_class(provider.AsFFI()); + diplomat::result diplomat_result_out_value; + if (diplomat_result_raw_out_value.is_ok) { + diplomat_result_out_value = diplomat::Ok(ICU4XPropertyValueNameToEnumMapper(diplomat_result_raw_out_value.ok)); + } else { + diplomat_result_out_value = diplomat::Err(static_cast(diplomat_result_raw_out_value.err)); + } + return diplomat_result_out_value; +} inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_indic_syllabic_category(const ICU4XDataProvider& provider) { auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(provider.AsFFI()); diplomat::result diplomat_result_out_value; diff --git a/ffi/capi/bindings/dart/CodePointMapData8.g.dart b/ffi/capi/bindings/dart/CodePointMapData8.g.dart index 3130dd29f35..0d2f8e7b79e 100644 --- a/ffi/capi/bindings/dart/CodePointMapData8.g.dart +++ b/ffi/capi/bindings/dart/CodePointMapData8.g.dart @@ -126,6 +126,17 @@ final class CodePointMapData8 implements ffi.Finalizable { return CodePointMapData8._fromFfi(result.union.ok, []); } + /// See the [Rust documentation for `hangul_syllable_type`](https://docs.rs/icu/latest/icu/properties/maps/fn.hangul_syllable_type.html) for more information. + /// + /// Throws [Error] on failure. + factory CodePointMapData8.hangulSyllableType(DataProvider provider) { + final result = _ICU4XCodePointMapData8_load_hangul_syllable_type(provider._ffi); + if (!result.isOk) { + throw Error.values.firstWhere((v) => v._ffi == result.union.err); + } + return CodePointMapData8._fromFfi(result.union.ok, []); + } + /// See the [Rust documentation for `indic_syllabic_category`](https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html) for more information. /// /// Throws [Error] on failure. @@ -243,6 +254,11 @@ external _ResultOpaqueInt32 _ICU4XCodePointMapData8_load_bidi_class(ffi.Pointer< // ignore: non_constant_identifier_names external _ResultOpaqueInt32 _ICU4XCodePointMapData8_load_east_asian_width(ffi.Pointer provider); +@meta.ResourceIdentifier('ICU4XCodePointMapData8_load_hangul_syllable_type') +@ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XCodePointMapData8_load_hangul_syllable_type') +// ignore: non_constant_identifier_names +external _ResultOpaqueInt32 _ICU4XCodePointMapData8_load_hangul_syllable_type(ffi.Pointer provider); + @meta.ResourceIdentifier('ICU4XCodePointMapData8_load_indic_syllabic_category') @ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XCodePointMapData8_load_indic_syllabic_category') // ignore: non_constant_identifier_names diff --git a/ffi/capi/bindings/dart/GeneralCategoryNameToMaskMapper.g.dart b/ffi/capi/bindings/dart/GeneralCategoryNameToMaskMapper.g.dart index fbc0f924cda..d083957c1f2 100644 --- a/ffi/capi/bindings/dart/GeneralCategoryNameToMaskMapper.g.dart +++ b/ffi/capi/bindings/dart/GeneralCategoryNameToMaskMapper.g.dart @@ -4,7 +4,7 @@ part of 'lib.g.dart'; /// A type capable of looking up General Category mask values from a string name. /// -/// See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper) for more information. +/// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper) for more information. /// /// See the [Rust documentation for `PropertyValueNameToEnumMapper`](https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapper.html) for more information. final class GeneralCategoryNameToMaskMapper implements ffi.Finalizable { @@ -48,7 +48,7 @@ final class GeneralCategoryNameToMaskMapper implements ffi.Finalizable { return result; } - /// See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper) for more information. + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper) for more information. /// /// Throws [Error] on failure. factory GeneralCategoryNameToMaskMapper(DataProvider provider) { diff --git a/ffi/capi/bindings/dart/PropertyValueNameToEnumMapper.g.dart b/ffi/capi/bindings/dart/PropertyValueNameToEnumMapper.g.dart index 23504e35eec..ce63d0eada0 100644 --- a/ffi/capi/bindings/dart/PropertyValueNameToEnumMapper.g.dart +++ b/ffi/capi/bindings/dart/PropertyValueNameToEnumMapper.g.dart @@ -52,7 +52,7 @@ final class PropertyValueNameToEnumMapper implements ffi.Finalizable { return result; } - /// See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.get_name_to_enum_mapper) for more information. + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.name_to_enum_mapper) for more information. /// /// Throws [Error] on failure. factory PropertyValueNameToEnumMapper.generalCategory(DataProvider provider) { @@ -63,11 +63,11 @@ final class PropertyValueNameToEnumMapper implements ffi.Finalizable { return PropertyValueNameToEnumMapper._fromFfi(result.union.ok, []); } - /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper) for more information. + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.HangulSyllableType.html#method.name_to_enum_mapper) for more information. /// /// Throws [Error] on failure. - factory PropertyValueNameToEnumMapper.bidiClass(DataProvider provider) { - final result = _ICU4XPropertyValueNameToEnumMapper_load_bidi_class(provider._ffi); + factory PropertyValueNameToEnumMapper.hangulSyllableType(DataProvider provider) { + final result = _ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(provider._ffi); if (!result.isOk) { throw Error.values.firstWhere((v) => v._ffi == result.union.err); } @@ -85,6 +85,17 @@ final class PropertyValueNameToEnumMapper implements ffi.Finalizable { return PropertyValueNameToEnumMapper._fromFfi(result.union.ok, []); } + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper) for more information. + /// + /// Throws [Error] on failure. + factory PropertyValueNameToEnumMapper.bidiClass(DataProvider provider) { + final result = _ICU4XPropertyValueNameToEnumMapper_load_bidi_class(provider._ffi); + if (!result.isOk) { + throw Error.values.firstWhere((v) => v._ffi == result.union.err); + } + return PropertyValueNameToEnumMapper._fromFfi(result.union.ok, []); + } + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper) for more information. /// /// Throws [Error] on failure. @@ -107,7 +118,7 @@ final class PropertyValueNameToEnumMapper implements ffi.Finalizable { return PropertyValueNameToEnumMapper._fromFfi(result.union.ok, []); } - /// See the [Rust documentation for `get_name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.get_name_to_enum_mapper) for more information. + /// See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.name_to_enum_mapper) for more information. /// /// Throws [Error] on failure. factory PropertyValueNameToEnumMapper.graphemeClusterBreak(DataProvider provider) { @@ -172,16 +183,21 @@ external int _ICU4XPropertyValueNameToEnumMapper_get_loose(ffi.Pointer provider); -@meta.ResourceIdentifier('ICU4XPropertyValueNameToEnumMapper_load_bidi_class') -@ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XPropertyValueNameToEnumMapper_load_bidi_class') +@meta.ResourceIdentifier('ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type') +@ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type') // ignore: non_constant_identifier_names -external _ResultOpaqueInt32 _ICU4XPropertyValueNameToEnumMapper_load_bidi_class(ffi.Pointer provider); +external _ResultOpaqueInt32 _ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(ffi.Pointer provider); @meta.ResourceIdentifier('ICU4XPropertyValueNameToEnumMapper_load_east_asian_width') @ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XPropertyValueNameToEnumMapper_load_east_asian_width') // ignore: non_constant_identifier_names external _ResultOpaqueInt32 _ICU4XPropertyValueNameToEnumMapper_load_east_asian_width(ffi.Pointer provider); +@meta.ResourceIdentifier('ICU4XPropertyValueNameToEnumMapper_load_bidi_class') +@ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XPropertyValueNameToEnumMapper_load_bidi_class') +// ignore: non_constant_identifier_names +external _ResultOpaqueInt32 _ICU4XPropertyValueNameToEnumMapper_load_bidi_class(ffi.Pointer provider); + @meta.ResourceIdentifier('ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category') @ffi.Native<_ResultOpaqueInt32 Function(ffi.Pointer)>(isLeaf: true, symbol: 'ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category') // ignore: non_constant_identifier_names diff --git a/ffi/capi/bindings/js/ICU4XCodePointMapData8.d.ts b/ffi/capi/bindings/js/ICU4XCodePointMapData8.d.ts index 0758d6625f8..c6566626489 100644 --- a/ffi/capi/bindings/js/ICU4XCodePointMapData8.d.ts +++ b/ffi/capi/bindings/js/ICU4XCodePointMapData8.d.ts @@ -100,6 +100,13 @@ export class ICU4XCodePointMapData8 { */ static load_east_asian_width(provider: ICU4XDataProvider): ICU4XCodePointMapData8 | never; + /** + + * See the {@link https://docs.rs/icu/latest/icu/properties/maps/fn.hangul_syllable_type.html Rust documentation for `hangul_syllable_type`} for more information. + * @throws {@link FFIError}<{@link ICU4XError}> + */ + static load_hangul_syllable_type(provider: ICU4XDataProvider): ICU4XCodePointMapData8 | never; + /** * See the {@link https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html Rust documentation for `indic_syllabic_category`} for more information. diff --git a/ffi/capi/bindings/js/ICU4XCodePointMapData8.mjs b/ffi/capi/bindings/js/ICU4XCodePointMapData8.mjs index 9bd4710c455..f3d8d544339 100644 --- a/ffi/capi/bindings/js/ICU4XCodePointMapData8.mjs +++ b/ffi/capi/bindings/js/ICU4XCodePointMapData8.mjs @@ -97,6 +97,23 @@ export class ICU4XCodePointMapData8 { })(); } + static load_hangul_syllable_type(arg_provider) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XCodePointMapData8_load_hangul_syllable_type(diplomat_receive_buffer, arg_provider.underlying); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XCodePointMapData8(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + static load_indic_syllabic_category(arg_provider) { return (() => { const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); diff --git a/ffi/capi/bindings/js/ICU4XGeneralCategoryNameToMaskMapper.d.ts b/ffi/capi/bindings/js/ICU4XGeneralCategoryNameToMaskMapper.d.ts index b5cfef9cab9..8b2b8b914c7 100644 --- a/ffi/capi/bindings/js/ICU4XGeneralCategoryNameToMaskMapper.d.ts +++ b/ffi/capi/bindings/js/ICU4XGeneralCategoryNameToMaskMapper.d.ts @@ -7,7 +7,7 @@ import { ICU4XError } from "./ICU4XError"; * A type capable of looking up General Category mask values from a string name. - * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper Rust documentation for `get_name_to_enum_mapper`} for more information. + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. * See the {@link https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapper.html Rust documentation for `PropertyValueNameToEnumMapper`} for more information. */ @@ -31,7 +31,7 @@ export class ICU4XGeneralCategoryNameToMaskMapper { /** - * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper Rust documentation for `get_name_to_enum_mapper`} for more information. + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. * @throws {@link FFIError}<{@link ICU4XError}> */ static load(provider: ICU4XDataProvider): ICU4XGeneralCategoryNameToMaskMapper | never; diff --git a/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.d.ts b/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.d.ts index f12131e1e7c..403f3b583c8 100644 --- a/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.d.ts +++ b/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.d.ts @@ -35,17 +35,17 @@ export class ICU4XPropertyValueNameToEnumMapper { /** - * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.get_name_to_enum_mapper Rust documentation for `get_name_to_enum_mapper`} for more information. + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. * @throws {@link FFIError}<{@link ICU4XError}> */ static load_general_category(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; /** - * See the {@link https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.HangulSyllableType.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. * @throws {@link FFIError}<{@link ICU4XError}> */ - static load_bidi_class(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; + static load_hangul_syllable_type(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; /** @@ -54,6 +54,13 @@ export class ICU4XPropertyValueNameToEnumMapper { */ static load_east_asian_width(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; + /** + + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. + * @throws {@link FFIError}<{@link ICU4XError}> + */ + static load_bidi_class(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; + /** * See the {@link https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. @@ -70,7 +77,7 @@ export class ICU4XPropertyValueNameToEnumMapper { /** - * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.get_name_to_enum_mapper Rust documentation for `get_name_to_enum_mapper`} for more information. + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. * @throws {@link FFIError}<{@link ICU4XError}> */ static load_grapheme_cluster_break(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; diff --git a/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.mjs b/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.mjs index 29c71ed45af..6c652d81f1b 100644 --- a/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.mjs +++ b/ffi/capi/bindings/js/ICU4XPropertyValueNameToEnumMapper.mjs @@ -47,10 +47,10 @@ export class ICU4XPropertyValueNameToEnumMapper { })(); } - static load_bidi_class(arg_provider) { + static load_hangul_syllable_type(arg_provider) { return (() => { const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); - wasm.ICU4XPropertyValueNameToEnumMapper_load_bidi_class(diplomat_receive_buffer, arg_provider.underlying); + wasm.ICU4XPropertyValueNameToEnumMapper_load_hangul_syllable_type(diplomat_receive_buffer, arg_provider.underlying); const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); if (is_ok) { const ok_value = new ICU4XPropertyValueNameToEnumMapper(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); @@ -81,6 +81,23 @@ export class ICU4XPropertyValueNameToEnumMapper { })(); } + static load_bidi_class(arg_provider) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XPropertyValueNameToEnumMapper_load_bidi_class(diplomat_receive_buffer, arg_provider.underlying); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XPropertyValueNameToEnumMapper(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + static load_indic_syllabic_category(arg_provider) { return (() => { const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); diff --git a/ffi/capi/src/properties_maps.rs b/ffi/capi/src/properties_maps.rs index b5fb04f631e..eb8357ba8c1 100644 --- a/ffi/capi/src/properties_maps.rs +++ b/ffi/capi/src/properties_maps.rs @@ -169,6 +169,19 @@ pub mod ffi { )?)) } + #[diplomat::rust_link(icu::properties::maps::hangul_syllable_type, Fn)] + #[diplomat::rust_link(icu::properties::maps::load_hangul_syllable_type, Fn, hidden)] + #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "hangul_syllable_type")] + pub fn load_hangul_syllable_type( + provider: &ICU4XDataProvider, + ) -> Result, ICU4XError> { + Ok(convert_8(call_constructor_unstable!( + maps::hangul_syllable_type [r => Ok(r.static_to_owned())], + maps::load_hangul_syllable_type, + provider, + )?)) + } + #[diplomat::rust_link(icu::properties::maps::indic_syllabic_category, Fn)] #[diplomat::rust_link(icu::properties::maps::load_indic_syllabic_category, Fn, hidden)] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "indic_syllabic_category")] diff --git a/ffi/capi/src/properties_names.rs b/ffi/capi/src/properties_names.rs index 587a94ca2b3..31d5ca6bfea 100644 --- a/ffi/capi/src/properties_names.rs +++ b/ffi/capi/src/properties_names.rs @@ -8,8 +8,8 @@ pub mod ffi { use alloc::boxed::Box; use icu_properties::{ names::PropertyValueNameToEnumMapper, BidiClass, EastAsianWidth, GeneralCategory, - GeneralCategoryGroup, GraphemeClusterBreak, IndicSyllabicCategory, LineBreak, Script, - SentenceBreak, WordBreak, + GeneralCategoryGroup, GraphemeClusterBreak, HangulSyllableType, IndicSyllabicCategory, + LineBreak, Script, SentenceBreak, WordBreak, }; use crate::errors::ffi::ICU4XError; @@ -70,9 +70,11 @@ pub mod ffi { .unwrap_or(-1) } + #[diplomat::rust_link(icu::properties::GeneralCategory::name_to_enum_mapper, FnInStruct)] #[diplomat::rust_link( icu::properties::GeneralCategory::get_name_to_enum_mapper, - FnInStruct + FnInStruct, + hidden )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "general_category")] pub fn load_general_category( @@ -88,15 +90,20 @@ pub mod ffi { ))) } - #[diplomat::rust_link(icu::properties::BidiClass::name_to_enum_mapper, FnInStruct)] - #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_class")] - pub fn load_bidi_class( + #[diplomat::rust_link(icu::properties::HangulSyllableType::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::HangulSyllableType::get_name_to_enum_mapper, + FnInStruct, + hidden + )] + #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "hangul_syllable_type")] + pub fn load_hangul_syllable_type( provider: &ICU4XDataProvider, ) -> Result, ICU4XError> { Ok(Box::new(ICU4XPropertyValueNameToEnumMapper( call_constructor_unstable!( - BidiClass::name_to_enum_mapper [r => Ok(r.static_to_owned())], - BidiClass::get_name_to_enum_mapper, + HangulSyllableType::name_to_enum_mapper [r => Ok(r.static_to_owned())], + HangulSyllableType::get_name_to_enum_mapper, provider, )? .erase(), @@ -104,6 +111,11 @@ pub mod ffi { } #[diplomat::rust_link(icu::properties::EastAsianWidth::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::EastAsianWidth::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "east_asian_width")] pub fn load_east_asian_width( provider: &ICU4XDataProvider, @@ -118,10 +130,35 @@ pub mod ffi { ))) } + #[diplomat::rust_link(icu::properties::BidiClass::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::BidiClass::get_name_to_enum_mapper, + FnInStruct, + hidden + )] + #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_class")] + pub fn load_bidi_class( + provider: &ICU4XDataProvider, + ) -> Result, ICU4XError> { + Ok(Box::new(ICU4XPropertyValueNameToEnumMapper( + call_constructor_unstable!( + BidiClass::name_to_enum_mapper [r => Ok(r.static_to_owned())], + BidiClass::get_name_to_enum_mapper, + provider, + )? + .erase(), + ))) + } + #[diplomat::rust_link( icu::properties::IndicSyllabicCategory::name_to_enum_mapper, FnInStruct )] + #[diplomat::rust_link( + icu::properties::IndicSyllabicCategory::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "indic_syllabic_category")] pub fn load_indic_syllabic_category( provider: &ICU4XDataProvider, @@ -137,6 +174,11 @@ pub mod ffi { } #[diplomat::rust_link(icu::properties::LineBreak::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::LineBreak::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "line_break")] pub fn load_line_break( provider: &ICU4XDataProvider, @@ -152,9 +194,14 @@ pub mod ffi { } #[diplomat::rust_link( - icu::properties::GraphemeClusterBreak::get_name_to_enum_mapper, + icu::properties::GraphemeClusterBreak::name_to_enum_mapper, FnInStruct )] + #[diplomat::rust_link( + icu::properties::GraphemeClusterBreak::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_cluster_break")] pub fn load_grapheme_cluster_break( provider: &ICU4XDataProvider, @@ -170,6 +217,11 @@ pub mod ffi { } #[diplomat::rust_link(icu::properties::WordBreak::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::WordBreak::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "word_break")] pub fn load_word_break( provider: &ICU4XDataProvider, @@ -185,6 +237,11 @@ pub mod ffi { } #[diplomat::rust_link(icu::properties::SentenceBreak::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link( + icu::properties::SentenceBreak::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "sentence_break")] pub fn load_sentence_break( provider: &ICU4XDataProvider, @@ -200,6 +257,7 @@ pub mod ffi { } #[diplomat::rust_link(icu::properties::Script::name_to_enum_mapper, FnInStruct)] + #[diplomat::rust_link(icu::properties::Script::get_name_to_enum_mapper, FnInStruct, hidden)] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "script")] pub fn load_script( provider: &ICU4XDataProvider, @@ -217,9 +275,11 @@ pub mod ffi { /// A type capable of looking up General Category mask values from a string name. #[diplomat::opaque] + #[diplomat::rust_link(icu::properties::GeneralCategoryGroup::name_to_enum_mapper, FnInStruct)] #[diplomat::rust_link( icu::properties::GeneralCategoryGroup::get_name_to_enum_mapper, - FnInStruct + FnInStruct, + hidden )] #[diplomat::rust_link(icu::properties::names::PropertyValueNameToEnumMapper, Struct)] pub struct ICU4XGeneralCategoryNameToMaskMapper( @@ -258,9 +318,14 @@ pub mod ffi { } #[diplomat::rust_link( - icu::properties::GeneralCategoryGroup::get_name_to_enum_mapper, + icu::properties::GeneralCategoryGroup::name_to_enum_mapper, FnInStruct )] + #[diplomat::rust_link( + icu::properties::GeneralCategoryGroup::get_name_to_enum_mapper, + FnInStruct, + hidden + )] #[diplomat::attr(all(supports = constructors, supports = fallible_constructors), constructor)] pub fn load( provider: &ICU4XDataProvider, diff --git a/ffi/capi/tests/missing_apis.txt b/ffi/capi/tests/missing_apis.txt index 3925fb9ea92..90c63e88e9e 100644 --- a/ffi/capi/tests/missing_apis.txt +++ b/ffi/capi/tests/missing_apis.txt @@ -43,7 +43,6 @@ icu::properties::BidiClass::enum_to_long_name_mapper#FnInStruct icu::properties::BidiClass::enum_to_short_name_mapper#FnInStruct icu::properties::BidiClass::get_enum_to_long_name_mapper#FnInStruct icu::properties::BidiClass::get_enum_to_short_name_mapper#FnInStruct -icu::properties::BidiClass::get_name_to_enum_mapper#FnInStruct icu::properties::BidiClass::to_u32#FnInStruct icu::properties::BidiClass::try_from_u32#FnInStruct icu::properties::CanonicalCombiningClass#Struct @@ -126,7 +125,6 @@ icu::properties::EastAsianWidth::enum_to_long_name_mapper#FnInStruct icu::properties::EastAsianWidth::enum_to_short_name_mapper#FnInStruct icu::properties::EastAsianWidth::get_enum_to_long_name_mapper#FnInStruct icu::properties::EastAsianWidth::get_enum_to_short_name_mapper#FnInStruct -icu::properties::EastAsianWidth::get_name_to_enum_mapper#FnInStruct icu::properties::EastAsianWidth::to_u32#FnInStruct icu::properties::EastAsianWidth::try_from_u32#FnInStruct icu::properties::GeneralCategory#Enum @@ -183,7 +181,6 @@ icu::properties::GeneralCategoryGroup::complement#FnInStruct icu::properties::GeneralCategoryGroup::contains#FnInStruct icu::properties::GeneralCategoryGroup::empty#FnInStruct icu::properties::GeneralCategoryGroup::intersection#FnInStruct -icu::properties::GeneralCategoryGroup::name_to_enum_mapper#FnInStruct icu::properties::GeneralCategoryGroup::to_u32#FnInStruct icu::properties::GeneralCategoryGroup::try_from_u32#FnInStruct icu::properties::GeneralCategoryGroup::union#FnInStruct @@ -211,9 +208,22 @@ icu::properties::GraphemeClusterBreak::enum_to_long_name_mapper#FnInStruct icu::properties::GraphemeClusterBreak::enum_to_short_name_mapper#FnInStruct icu::properties::GraphemeClusterBreak::get_enum_to_long_name_mapper#FnInStruct icu::properties::GraphemeClusterBreak::get_enum_to_short_name_mapper#FnInStruct -icu::properties::GraphemeClusterBreak::name_to_enum_mapper#FnInStruct icu::properties::GraphemeClusterBreak::to_u32#FnInStruct icu::properties::GraphemeClusterBreak::try_from_u32#FnInStruct +icu::properties::HangulSyllableType#Struct +icu::properties::HangulSyllableType::LeadingJamo#AssociatedConstantInStruct +icu::properties::HangulSyllableType::LeadingVowelSyllable#AssociatedConstantInStruct +icu::properties::HangulSyllableType::LeadingVowelTrailingSyllable#AssociatedConstantInStruct +icu::properties::HangulSyllableType::NotApplicable#AssociatedConstantInStruct +icu::properties::HangulSyllableType::TrailingJamo#AssociatedConstantInStruct +icu::properties::HangulSyllableType::TryFromU32Error#AssociatedTypeInStruct +icu::properties::HangulSyllableType::VowelJamo#AssociatedConstantInStruct +icu::properties::HangulSyllableType::enum_to_long_name_mapper#FnInStruct +icu::properties::HangulSyllableType::enum_to_short_name_mapper#FnInStruct +icu::properties::HangulSyllableType::get_enum_to_long_name_mapper#FnInStruct +icu::properties::HangulSyllableType::get_enum_to_short_name_mapper#FnInStruct +icu::properties::HangulSyllableType::to_u32#FnInStruct +icu::properties::HangulSyllableType::try_from_u32#FnInStruct icu::properties::IndicSyllabicCategory#Struct icu::properties::IndicSyllabicCategory::Avagraha#AssociatedConstantInStruct icu::properties::IndicSyllabicCategory::Bindu#AssociatedConstantInStruct @@ -256,7 +266,6 @@ icu::properties::IndicSyllabicCategory::enum_to_long_name_mapper#FnInStruct icu::properties::IndicSyllabicCategory::enum_to_short_name_mapper#FnInStruct icu::properties::IndicSyllabicCategory::get_enum_to_long_name_mapper#FnInStruct icu::properties::IndicSyllabicCategory::get_enum_to_short_name_mapper#FnInStruct -icu::properties::IndicSyllabicCategory::get_name_to_enum_mapper#FnInStruct icu::properties::IndicSyllabicCategory::to_u32#FnInStruct icu::properties::IndicSyllabicCategory::try_from_u32#FnInStruct icu::properties::JoiningType#Struct @@ -329,7 +338,6 @@ icu::properties::LineBreak::enum_to_long_name_mapper#FnInStruct icu::properties::LineBreak::enum_to_short_name_mapper#FnInStruct icu::properties::LineBreak::get_enum_to_long_name_mapper#FnInStruct icu::properties::LineBreak::get_enum_to_short_name_mapper#FnInStruct -icu::properties::LineBreak::get_name_to_enum_mapper#FnInStruct icu::properties::LineBreak::to_u32#FnInStruct icu::properties::LineBreak::try_from_u32#FnInStruct icu::properties::Script#Struct @@ -503,7 +511,6 @@ icu::properties::Script::enum_to_long_name_mapper#FnInStruct icu::properties::Script::enum_to_short_name_mapper#FnInStruct icu::properties::Script::get_enum_to_long_name_mapper#FnInStruct icu::properties::Script::get_enum_to_short_name_mapper#FnInStruct -icu::properties::Script::get_name_to_enum_mapper#FnInStruct icu::properties::Script::to_u32#FnInStruct icu::properties::Script::try_from_u32#FnInStruct icu::properties::SentenceBreak#Struct @@ -527,7 +534,6 @@ icu::properties::SentenceBreak::enum_to_long_name_mapper#FnInStruct icu::properties::SentenceBreak::enum_to_short_name_mapper#FnInStruct icu::properties::SentenceBreak::get_enum_to_long_name_mapper#FnInStruct icu::properties::SentenceBreak::get_enum_to_short_name_mapper#FnInStruct -icu::properties::SentenceBreak::get_name_to_enum_mapper#FnInStruct icu::properties::SentenceBreak::to_u32#FnInStruct icu::properties::SentenceBreak::try_from_u32#FnInStruct icu::properties::WordBreak#Struct @@ -559,7 +565,6 @@ icu::properties::WordBreak::enum_to_long_name_mapper#FnInStruct icu::properties::WordBreak::enum_to_short_name_mapper#FnInStruct icu::properties::WordBreak::get_enum_to_long_name_mapper#FnInStruct icu::properties::WordBreak::get_enum_to_short_name_mapper#FnInStruct -icu::properties::WordBreak::get_name_to_enum_mapper#FnInStruct icu::properties::WordBreak::to_u32#FnInStruct icu::properties::WordBreak::try_from_u32#FnInStruct icu::properties::bidi_data::BidiAuxiliaryProperties#Struct diff --git a/provider/baked/properties/data/macros.rs b/provider/baked/properties/data/macros.rs index 2d353d02f23..8a2062b37f1 100644 --- a/provider/baked/properties/data/macros.rs +++ b/provider/baked/properties/data/macros.rs @@ -89,6 +89,13 @@ pub use __impl_propnames_from_gcm_v1 as impl_propnames_from_gcm_v1; #[doc(inline)] pub use __impliterable_propnames_from_gcm_v1 as impliterable_propnames_from_gcm_v1; #[macro_use] +#[path = "macros/propnames_from_hst_v1.rs.data"] +mod propnames_from_hst_v1; +#[doc(inline)] +pub use __impl_propnames_from_hst_v1 as impl_propnames_from_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_from_hst_v1 as impliterable_propnames_from_hst_v1; +#[macro_use] #[path = "macros/propnames_from_jt_v1.rs.data"] mod propnames_from_jt_v1; #[doc(inline)] @@ -159,6 +166,13 @@ pub use __impl_propnames_to_long_linear_gc_v1 as impl_propnames_to_long_linear_g #[doc(inline)] pub use __impliterable_propnames_to_long_linear_gc_v1 as impliterable_propnames_to_long_linear_gc_v1; #[macro_use] +#[path = "macros/propnames_to_long_linear_hst_v1.rs.data"] +mod propnames_to_long_linear_hst_v1; +#[doc(inline)] +pub use __impl_propnames_to_long_linear_hst_v1 as impl_propnames_to_long_linear_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_to_long_linear_hst_v1 as impliterable_propnames_to_long_linear_hst_v1; +#[macro_use] #[path = "macros/propnames_to_long_linear_jt_v1.rs.data"] mod propnames_to_long_linear_jt_v1; #[doc(inline)] @@ -236,6 +250,13 @@ pub use __impl_propnames_to_short_linear_gc_v1 as impl_propnames_to_short_linear #[doc(inline)] pub use __impliterable_propnames_to_short_linear_gc_v1 as impliterable_propnames_to_short_linear_gc_v1; #[macro_use] +#[path = "macros/propnames_to_short_linear_hst_v1.rs.data"] +mod propnames_to_short_linear_hst_v1; +#[doc(inline)] +pub use __impl_propnames_to_short_linear_hst_v1 as impl_propnames_to_short_linear_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_to_short_linear_hst_v1 as impliterable_propnames_to_short_linear_hst_v1; +#[macro_use] #[path = "macros/propnames_to_short_linear_jt_v1.rs.data"] mod propnames_to_short_linear_jt_v1; #[doc(inline)] @@ -775,6 +796,13 @@ pub use __impl_props_graph_v1 as impl_props_graph_v1; #[doc(inline)] pub use __impliterable_props_graph_v1 as impliterable_props_graph_v1; #[macro_use] +#[path = "macros/props_hst_v1.rs.data"] +mod props_hst_v1; +#[doc(inline)] +pub use __impl_props_hst_v1 as impl_props_hst_v1; +#[doc(inline)] +pub use __impliterable_props_hst_v1 as impliterable_props_hst_v1; +#[macro_use] #[path = "macros/props_jt_v1.rs.data"] mod props_jt_v1; #[doc(inline)] diff --git a/provider/baked/properties/data/macros/propnames_from_hst_v1.rs.data b/provider/baked/properties/data/macros/propnames_from_hst_v1.rs.data new file mode 100644 index 00000000000..0dcc5f24323 --- /dev/null +++ b/provider/baked/properties/data/macros/propnames_from_hst_v1.rs.data @@ -0,0 +1,47 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_from_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_FROM_HST_V1: &'static ::Yokeable = &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") }) + }, + }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_FROM_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_from_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/baked/properties/data/macros/propnames_to_long_linear_hst_v1.rs.data b/provider/baked/properties/data/macros/propnames_to_long_linear_hst_v1.rs.data new file mode 100644 index 00000000000..b46d28e42a1 --- /dev/null +++ b/provider/baked/properties/data/macros/propnames_to_long_linear_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_long_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_LONG_LINEAR_HST_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x06\0\0\0\0\0\x0E\0\x1A\0$\x001\0<\0Not_ApplicableLeading_JamoVowel_JamoTrailing_JamoLV_SyllableLVT_Syllable") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_LONG_LINEAR_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_to_long_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/baked/properties/data/macros/propnames_to_short_linear_hst_v1.rs.data b/provider/baked/properties/data/macros/propnames_to_short_linear_hst_v1.rs.data new file mode 100644 index 00000000000..9613f13e066 --- /dev/null +++ b/provider/baked/properties/data/macros/propnames_to_short_linear_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_short_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_SHORT_LINEAR_HST_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x06\0\0\0\0\0\x02\0\x03\0\x04\0\x05\0\x07\0NALVTLVLVT") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_SHORT_LINEAR_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_to_short_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/baked/properties/data/macros/props_hst_v1.rs.data b/provider/baked/properties/data/macros/props_hst_v1.rs.data new file mode 100644 index 00000000000..720ccffdf73 --- /dev/null +++ b/provider/baked/properties/data/macros/props_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_props_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPS_HST_V1: &'static ::Yokeable = &icu::properties::provider::PropertyCodePointMapV1::CodePointTrie(icu::collections::codepointtrie::CodePointTrie::from_parts(icu::collections::codepointtrie::CodePointTrieHeader { high_start: 55296u32, shifted12_high_start: 14u16, index3_null_offset: 2u16, data_null_offset: 0u32, null_value: 0u32, trie_type: icu::collections::codepointtrie::TrieType::Small }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDA\0\xE3\0\xEF\0\x08\x01\0\0\x10\0 \x000\0@\0P\0`\0p\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\0\x80\0\x80\0\x80\0\x80\0\x80\0\x90\0\x90\0\x90\0\x90\0\x98\0\xA0\0\xA0\0\xA0\0\xA0\0\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\0\xB0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xDD\0\x90\0\xED\0\xA0\0\xA0\0\xF8\0D\0L\0L\0L\0L\0L\0L\0L\0l\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x8C\0\x02\0\xAC\0\xB0\0\xAD\0\xB1\0\xAE\0\xB2\0\xAF\0\xAC\0\xB0\0\xAD\0\xB1\0\xAE\0\xB2\0\xAF\0\xBA\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0") }, icu::properties::HangulSyllableType(0u8))); + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPS_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_props_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/datagen/src/provider/tests/data.rs b/provider/datagen/src/provider/tests/data.rs index 3258774ce61..9a1ac117628 100644 --- a/provider/datagen/src/provider/tests/data.rs +++ b/provider/datagen/src/provider/tests/data.rs @@ -608,6 +608,7 @@ impl DatagenProvider { ("uprops/small/Gr_Link.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/Gr_Link.toml").as_slice()), ("uprops/small/graph.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/graph.toml").as_slice()), ("uprops/small/Hex.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/Hex.toml").as_slice()), + ("uprops/small/hst.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/hst.toml").as_slice()), ("uprops/small/Hyphen.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/Hyphen.toml").as_slice()), ("uprops/small/IDC.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/IDC.toml").as_slice()), ("uprops/small/Ideo.toml", include_bytes!("../../../tests/data/icuexport/uprops/small/Ideo.toml").as_slice()), diff --git a/provider/datagen/src/registry.rs b/provider/datagen/src/registry.rs index e635d88ba99..d35b35fdd3b 100644 --- a/provider/datagen/src/registry.rs +++ b/provider/datagen/src/registry.rs @@ -151,6 +151,10 @@ macro_rules! registry( icu::properties::provider::GraphemeClusterBreakValueToShortNameV1Marker = "propnames/to/short/linear/GCB@1", icu::properties::provider::GraphemeExtendV1Marker = "props/Gr_Ext@1", icu::properties::provider::GraphemeLinkV1Marker = "props/Gr_Link@1", + icu::properties::provider::HangulSyllableTypeV1Marker = "props/hst@1", + icu::properties::provider::HangulSyllableTypeNameToValueV1Marker = "propnames/from/hst@1", + icu::properties::provider::HangulSyllableTypeValueToLongNameV1Marker = "propnames/to/long/linear/hst@1", + icu::properties::provider::HangulSyllableTypeValueToShortNameV1Marker = "propnames/to/short/linear/hst@1", icu::properties::provider::HexDigitV1Marker = "props/Hex@1", icu::properties::provider::HyphenV1Marker = "props/Hyphen@1", icu::properties::provider::IdContinueV1Marker = "props/IDC@1", diff --git a/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs b/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs index c33b6b34318..7afa6a3b8cd 100644 --- a/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs +++ b/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs @@ -463,6 +463,15 @@ expand!( ), "sc" ), + ( + HangulSyllableTypeV1Marker, + HangulSyllableTypeNameToValueV1Marker, + ( + linear: HangulSyllableTypeValueToShortNameV1Marker, + HangulSyllableTypeValueToLongNameV1Marker + ), + "hst" + ), ( EastAsianWidthV1Marker, EastAsianWidthNameToValueV1Marker, diff --git a/provider/datagen/tests/data/baked/macros.rs b/provider/datagen/tests/data/baked/macros.rs index f0f25da3d16..561454f81aa 100644 --- a/provider/datagen/tests/data/baked/macros.rs +++ b/provider/datagen/tests/data/baked/macros.rs @@ -1027,6 +1027,13 @@ pub use __impl_propnames_from_gcm_v1 as impl_propnames_from_gcm_v1; #[doc(inline)] pub use __impliterable_propnames_from_gcm_v1 as impliterable_propnames_from_gcm_v1; #[macro_use] +#[path = "macros/propnames_from_hst_v1.rs.data"] +mod propnames_from_hst_v1; +#[doc(inline)] +pub use __impl_propnames_from_hst_v1 as impl_propnames_from_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_from_hst_v1 as impliterable_propnames_from_hst_v1; +#[macro_use] #[path = "macros/propnames_from_jt_v1.rs.data"] mod propnames_from_jt_v1; #[doc(inline)] @@ -1097,6 +1104,13 @@ pub use __impl_propnames_to_long_linear_gc_v1 as impl_propnames_to_long_linear_g #[doc(inline)] pub use __impliterable_propnames_to_long_linear_gc_v1 as impliterable_propnames_to_long_linear_gc_v1; #[macro_use] +#[path = "macros/propnames_to_long_linear_hst_v1.rs.data"] +mod propnames_to_long_linear_hst_v1; +#[doc(inline)] +pub use __impl_propnames_to_long_linear_hst_v1 as impl_propnames_to_long_linear_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_to_long_linear_hst_v1 as impliterable_propnames_to_long_linear_hst_v1; +#[macro_use] #[path = "macros/propnames_to_long_linear_jt_v1.rs.data"] mod propnames_to_long_linear_jt_v1; #[doc(inline)] @@ -1174,6 +1188,13 @@ pub use __impl_propnames_to_short_linear_gc_v1 as impl_propnames_to_short_linear #[doc(inline)] pub use __impliterable_propnames_to_short_linear_gc_v1 as impliterable_propnames_to_short_linear_gc_v1; #[macro_use] +#[path = "macros/propnames_to_short_linear_hst_v1.rs.data"] +mod propnames_to_short_linear_hst_v1; +#[doc(inline)] +pub use __impl_propnames_to_short_linear_hst_v1 as impl_propnames_to_short_linear_hst_v1; +#[doc(inline)] +pub use __impliterable_propnames_to_short_linear_hst_v1 as impliterable_propnames_to_short_linear_hst_v1; +#[macro_use] #[path = "macros/propnames_to_short_linear_jt_v1.rs.data"] mod propnames_to_short_linear_jt_v1; #[doc(inline)] @@ -1727,6 +1748,13 @@ pub use __impl_props_graph_v1 as impl_props_graph_v1; #[doc(inline)] pub use __impliterable_props_graph_v1 as impliterable_props_graph_v1; #[macro_use] +#[path = "macros/props_hst_v1.rs.data"] +mod props_hst_v1; +#[doc(inline)] +pub use __impl_props_hst_v1 as impl_props_hst_v1; +#[doc(inline)] +pub use __impliterable_props_hst_v1 as impliterable_props_hst_v1; +#[macro_use] #[path = "macros/props_jt_v1.rs.data"] mod props_jt_v1; #[doc(inline)] diff --git a/provider/datagen/tests/data/baked/macros/propnames_from_hst_v1.rs.data b/provider/datagen/tests/data/baked/macros/propnames_from_hst_v1.rs.data new file mode 100644 index 00000000000..0dcc5f24323 --- /dev/null +++ b/provider/datagen/tests/data/baked/macros/propnames_from_hst_v1.rs.data @@ -0,0 +1,47 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_from_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_FROM_HST_V1: &'static ::Yokeable = &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") }) + }, + }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_FROM_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_from_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/datagen/tests/data/baked/macros/propnames_to_long_linear_hst_v1.rs.data b/provider/datagen/tests/data/baked/macros/propnames_to_long_linear_hst_v1.rs.data new file mode 100644 index 00000000000..b46d28e42a1 --- /dev/null +++ b/provider/datagen/tests/data/baked/macros/propnames_to_long_linear_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_long_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_LONG_LINEAR_HST_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x06\0\0\0\0\0\x0E\0\x1A\0$\x001\0<\0Not_ApplicableLeading_JamoVowel_JamoTrailing_JamoLV_SyllableLVT_Syllable") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_LONG_LINEAR_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_to_long_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/datagen/tests/data/baked/macros/propnames_to_short_linear_hst_v1.rs.data b/provider/datagen/tests/data/baked/macros/propnames_to_short_linear_hst_v1.rs.data new file mode 100644 index 00000000000..9613f13e066 --- /dev/null +++ b/provider/datagen/tests/data/baked/macros/propnames_to_short_linear_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_short_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_SHORT_LINEAR_HST_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x06\0\0\0\0\0\x02\0\x03\0\x04\0\x05\0\x07\0NALVTLVLVT") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_SHORT_LINEAR_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_propnames_to_short_linear_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/datagen/tests/data/baked/macros/props_hst_v1.rs.data b/provider/datagen/tests/data/baked/macros/props_hst_v1.rs.data new file mode 100644 index 00000000000..720ccffdf73 --- /dev/null +++ b/provider/datagen/tests/data/baked/macros/props_hst_v1.rs.data @@ -0,0 +1,42 @@ +// @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. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_props_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPS_HST_V1: &'static ::Yokeable = &icu::properties::provider::PropertyCodePointMapV1::CodePointTrie(icu::collections::codepointtrie::CodePointTrie::from_parts(icu::collections::codepointtrie::CodePointTrieHeader { high_start: 55296u32, shifted12_high_start: 14u16, index3_null_offset: 2u16, data_null_offset: 0u32, null_value: 0u32, trie_type: icu::collections::codepointtrie::TrieType::Small }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDA\0\xE3\0\xEF\0\x08\x01\0\0\x10\0 \x000\0@\0P\0`\0p\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\0\x80\0\x80\0\x80\0\x80\0\x80\0\x90\0\x90\0\x90\0\x90\0\x98\0\xA0\0\xA0\0\xA0\0\xA0\0\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\0\xB0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xCC\0\xD1\0\xC0\0\xC4\0\xD1\0\xC8\0\xD1\0\xDD\0\x90\0\xED\0\xA0\0\xA0\0\xF8\0D\0L\0L\0L\0L\0L\0L\0L\0l\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x02\0\x8C\0\x02\0\xAC\0\xB0\0\xAD\0\xB1\0\xAE\0\xB2\0\xAF\0\xAC\0\xB0\0\xAD\0\xB1\0\xAE\0\xB2\0\xAF\0\xBA\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0") }, icu::properties::HangulSyllableType(0u8))); + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPS_HST_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} +/// Implement `IterableDataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `DatagenDriver` for this key. +#[doc(hidden)] +#[macro_export] +macro_rules! __impliterable_props_hst_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + impl icu_provider::datagen::IterableDataProvider for $provider { + fn supported_locales(&self) -> Result, icu_provider::DataError> { + Ok([icu_provider::DataLocale::default()].into()) + } + } + }; +} diff --git a/provider/datagen/tests/data/baked/mod.rs b/provider/datagen/tests/data/baked/mod.rs index 717870684e2..cb162347d34 100644 --- a/provider/datagen/tests/data/baked/mod.rs +++ b/provider/datagen/tests/data/baked/mod.rs @@ -146,6 +146,7 @@ macro_rules! impl_data_provider { impl_propnames_from_ea_v1!($provider); impl_propnames_from_gc_v1!($provider); impl_propnames_from_gcm_v1!($provider); + impl_propnames_from_hst_v1!($provider); impl_propnames_from_jt_v1!($provider); impl_propnames_from_lb_v1!($provider); impl_propnames_from_sc_v1!($provider); @@ -156,6 +157,7 @@ macro_rules! impl_data_provider { impl_propnames_to_long_linear_bc_v1!($provider); impl_propnames_to_long_linear_ea_v1!($provider); impl_propnames_to_long_linear_gc_v1!($provider); + impl_propnames_to_long_linear_hst_v1!($provider); impl_propnames_to_long_linear_jt_v1!($provider); impl_propnames_to_long_linear_lb_v1!($provider); impl_propnames_to_long_linear_sc_v1!($provider); @@ -167,6 +169,7 @@ macro_rules! impl_data_provider { impl_propnames_to_short_linear_bc_v1!($provider); impl_propnames_to_short_linear_ea_v1!($provider); impl_propnames_to_short_linear_gc_v1!($provider); + impl_propnames_to_short_linear_hst_v1!($provider); impl_propnames_to_short_linear_jt_v1!($provider); impl_propnames_to_short_linear_lb_v1!($provider); impl_propnames_to_short_linear4_sc_v1!($provider); @@ -246,6 +249,7 @@ macro_rules! impl_data_provider { impl_props_exemplarchars_punctuation_v1!($provider); impl_props_gc_v1!($provider); impl_props_graph_v1!($provider); + impl_props_hst_v1!($provider); impl_props_jt_v1!($provider); impl_props_lb_v1!($provider); impl_props_nfcinert_v1!($provider); @@ -452,6 +456,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -462,6 +467,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -473,6 +479,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -552,6 +559,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), diff --git a/provider/datagen/tests/data/icuexport/uprops/small/hst.toml b/provider/datagen/tests/data/icuexport/uprops/small/hst.toml new file mode 100644 index 00000000000..8313f4dba8e --- /dev/null +++ b/provider/datagen/tests/data/icuexport/uprops/small/hst.toml @@ -0,0 +1,885 @@ +# Copyright (C) 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html +# +# file name: hst +# +# machine-generated by: icuexportdata.cpp + +icu_version = "75.1" +unicode_version = "15.1" + +[[enum_property]] +long_name = "Hangul_Syllable_Type" +short_name = "hst" +uproperty_discr = 0x100B +values = [ + {discr = 0, long = "Not_Applicable", short = "NA"}, + {discr = 1, long = "Leading_Jamo", short = "L"}, + {discr = 2, long = "Vowel_Jamo", short = "V"}, + {discr = 3, long = "Trailing_Jamo", short = "T"}, + {discr = 4, long = "LV_Syllable", short = "LV"}, + {discr = 5, long = "LVT_Syllable", short = "LVT"}, +] +# Code points `a` through `b` have value `v`, corresponding to `name`. +ranges = [ + {a=0x0, b=0x10ff, v=0, name="NA"}, + {a=0x1100, b=0x115f, v=1, name="L"}, + {a=0x1160, b=0x11a7, v=2, name="V"}, + {a=0x11a8, b=0x11ff, v=3, name="T"}, + {a=0x1200, b=0xa95f, v=0, name="NA"}, + {a=0xa960, b=0xa97c, v=1, name="L"}, + {a=0xa97d, b=0xabff, v=0, name="NA"}, + {a=0xac00, b=0xac00, v=4, name="LV"}, + {a=0xac01, b=0xac1b, v=5, name="LVT"}, + {a=0xac1c, b=0xac1c, v=4, name="LV"}, + {a=0xac1d, b=0xac37, v=5, name="LVT"}, + {a=0xac38, b=0xac38, v=4, name="LV"}, + {a=0xac39, b=0xac53, v=5, name="LVT"}, + {a=0xac54, b=0xac54, v=4, name="LV"}, + {a=0xac55, b=0xac6f, v=5, name="LVT"}, + {a=0xac70, b=0xac70, v=4, name="LV"}, + {a=0xac71, b=0xac8b, v=5, name="LVT"}, + {a=0xac8c, b=0xac8c, v=4, name="LV"}, + {a=0xac8d, b=0xaca7, v=5, name="LVT"}, + {a=0xaca8, b=0xaca8, v=4, name="LV"}, + {a=0xaca9, b=0xacc3, v=5, name="LVT"}, + {a=0xacc4, b=0xacc4, v=4, name="LV"}, + {a=0xacc5, b=0xacdf, v=5, name="LVT"}, + {a=0xace0, b=0xace0, v=4, name="LV"}, + {a=0xace1, b=0xacfb, v=5, name="LVT"}, + {a=0xacfc, b=0xacfc, v=4, name="LV"}, + {a=0xacfd, b=0xad17, v=5, name="LVT"}, + {a=0xad18, b=0xad18, v=4, name="LV"}, + {a=0xad19, b=0xad33, v=5, name="LVT"}, + {a=0xad34, b=0xad34, v=4, name="LV"}, + {a=0xad35, b=0xad4f, v=5, name="LVT"}, + {a=0xad50, b=0xad50, v=4, name="LV"}, + {a=0xad51, b=0xad6b, v=5, name="LVT"}, + {a=0xad6c, b=0xad6c, v=4, name="LV"}, + {a=0xad6d, b=0xad87, v=5, name="LVT"}, + {a=0xad88, b=0xad88, v=4, name="LV"}, + {a=0xad89, b=0xada3, v=5, name="LVT"}, + {a=0xada4, b=0xada4, v=4, name="LV"}, + {a=0xada5, b=0xadbf, v=5, name="LVT"}, + {a=0xadc0, b=0xadc0, v=4, name="LV"}, + {a=0xadc1, b=0xaddb, v=5, name="LVT"}, + {a=0xaddc, b=0xaddc, v=4, name="LV"}, + {a=0xaddd, b=0xadf7, v=5, name="LVT"}, + {a=0xadf8, b=0xadf8, v=4, name="LV"}, + {a=0xadf9, b=0xae13, v=5, name="LVT"}, + {a=0xae14, b=0xae14, v=4, name="LV"}, + {a=0xae15, b=0xae2f, v=5, name="LVT"}, + {a=0xae30, b=0xae30, v=4, name="LV"}, + {a=0xae31, b=0xae4b, v=5, name="LVT"}, + {a=0xae4c, b=0xae4c, v=4, name="LV"}, + {a=0xae4d, b=0xae67, v=5, name="LVT"}, + {a=0xae68, b=0xae68, v=4, name="LV"}, + {a=0xae69, b=0xae83, v=5, name="LVT"}, + {a=0xae84, b=0xae84, v=4, name="LV"}, + {a=0xae85, b=0xae9f, v=5, name="LVT"}, + {a=0xaea0, b=0xaea0, v=4, name="LV"}, + {a=0xaea1, b=0xaebb, v=5, name="LVT"}, + {a=0xaebc, b=0xaebc, v=4, name="LV"}, + {a=0xaebd, b=0xaed7, v=5, name="LVT"}, + {a=0xaed8, b=0xaed8, v=4, name="LV"}, + {a=0xaed9, b=0xaef3, v=5, name="LVT"}, + {a=0xaef4, b=0xaef4, v=4, name="LV"}, + {a=0xaef5, b=0xaf0f, v=5, name="LVT"}, + {a=0xaf10, b=0xaf10, v=4, name="LV"}, + {a=0xaf11, b=0xaf2b, v=5, name="LVT"}, + {a=0xaf2c, b=0xaf2c, v=4, name="LV"}, + {a=0xaf2d, b=0xaf47, v=5, name="LVT"}, + {a=0xaf48, b=0xaf48, v=4, name="LV"}, + {a=0xaf49, b=0xaf63, v=5, name="LVT"}, + {a=0xaf64, b=0xaf64, v=4, name="LV"}, + {a=0xaf65, b=0xaf7f, v=5, name="LVT"}, + {a=0xaf80, b=0xaf80, v=4, name="LV"}, + {a=0xaf81, b=0xaf9b, v=5, name="LVT"}, + {a=0xaf9c, b=0xaf9c, v=4, name="LV"}, + {a=0xaf9d, b=0xafb7, v=5, name="LVT"}, + {a=0xafb8, b=0xafb8, v=4, name="LV"}, + {a=0xafb9, b=0xafd3, v=5, name="LVT"}, + {a=0xafd4, b=0xafd4, v=4, name="LV"}, + {a=0xafd5, b=0xafef, v=5, name="LVT"}, + {a=0xaff0, b=0xaff0, v=4, name="LV"}, + {a=0xaff1, b=0xb00b, v=5, name="LVT"}, + {a=0xb00c, b=0xb00c, v=4, name="LV"}, + {a=0xb00d, b=0xb027, v=5, name="LVT"}, + {a=0xb028, b=0xb028, v=4, name="LV"}, + {a=0xb029, b=0xb043, v=5, name="LVT"}, + {a=0xb044, b=0xb044, v=4, name="LV"}, + {a=0xb045, b=0xb05f, v=5, name="LVT"}, + {a=0xb060, b=0xb060, v=4, name="LV"}, + {a=0xb061, b=0xb07b, v=5, name="LVT"}, + {a=0xb07c, b=0xb07c, v=4, name="LV"}, + {a=0xb07d, b=0xb097, v=5, name="LVT"}, + {a=0xb098, b=0xb098, v=4, name="LV"}, + {a=0xb099, b=0xb0b3, v=5, name="LVT"}, + {a=0xb0b4, b=0xb0b4, v=4, name="LV"}, + {a=0xb0b5, b=0xb0cf, v=5, name="LVT"}, + {a=0xb0d0, b=0xb0d0, v=4, name="LV"}, + {a=0xb0d1, b=0xb0eb, v=5, name="LVT"}, + {a=0xb0ec, b=0xb0ec, v=4, name="LV"}, + {a=0xb0ed, b=0xb107, v=5, name="LVT"}, + {a=0xb108, b=0xb108, v=4, name="LV"}, + {a=0xb109, b=0xb123, v=5, name="LVT"}, + {a=0xb124, b=0xb124, v=4, name="LV"}, + {a=0xb125, b=0xb13f, v=5, name="LVT"}, + {a=0xb140, b=0xb140, v=4, name="LV"}, + {a=0xb141, b=0xb15b, v=5, name="LVT"}, + {a=0xb15c, b=0xb15c, v=4, name="LV"}, + {a=0xb15d, b=0xb177, v=5, name="LVT"}, + {a=0xb178, b=0xb178, v=4, name="LV"}, + {a=0xb179, b=0xb193, v=5, name="LVT"}, + {a=0xb194, b=0xb194, v=4, name="LV"}, + {a=0xb195, b=0xb1af, v=5, name="LVT"}, + {a=0xb1b0, b=0xb1b0, v=4, name="LV"}, + {a=0xb1b1, b=0xb1cb, v=5, name="LVT"}, + {a=0xb1cc, b=0xb1cc, v=4, name="LV"}, + {a=0xb1cd, b=0xb1e7, v=5, name="LVT"}, + {a=0xb1e8, b=0xb1e8, v=4, name="LV"}, + {a=0xb1e9, b=0xb203, v=5, name="LVT"}, + {a=0xb204, b=0xb204, v=4, name="LV"}, + {a=0xb205, b=0xb21f, v=5, name="LVT"}, + {a=0xb220, b=0xb220, v=4, name="LV"}, + {a=0xb221, b=0xb23b, v=5, name="LVT"}, + {a=0xb23c, b=0xb23c, v=4, name="LV"}, + {a=0xb23d, b=0xb257, v=5, name="LVT"}, + {a=0xb258, b=0xb258, v=4, name="LV"}, + {a=0xb259, b=0xb273, v=5, name="LVT"}, + {a=0xb274, b=0xb274, v=4, name="LV"}, + {a=0xb275, b=0xb28f, v=5, name="LVT"}, + {a=0xb290, b=0xb290, v=4, name="LV"}, + {a=0xb291, b=0xb2ab, v=5, name="LVT"}, + {a=0xb2ac, b=0xb2ac, v=4, name="LV"}, + {a=0xb2ad, b=0xb2c7, v=5, name="LVT"}, + {a=0xb2c8, b=0xb2c8, v=4, name="LV"}, + {a=0xb2c9, b=0xb2e3, v=5, name="LVT"}, + {a=0xb2e4, b=0xb2e4, v=4, name="LV"}, + {a=0xb2e5, b=0xb2ff, v=5, name="LVT"}, + {a=0xb300, b=0xb300, v=4, name="LV"}, + {a=0xb301, b=0xb31b, v=5, name="LVT"}, + {a=0xb31c, b=0xb31c, v=4, name="LV"}, + {a=0xb31d, b=0xb337, v=5, name="LVT"}, + {a=0xb338, b=0xb338, v=4, name="LV"}, + {a=0xb339, b=0xb353, v=5, name="LVT"}, + {a=0xb354, b=0xb354, v=4, name="LV"}, + {a=0xb355, b=0xb36f, v=5, name="LVT"}, + {a=0xb370, b=0xb370, v=4, name="LV"}, + {a=0xb371, b=0xb38b, v=5, name="LVT"}, + {a=0xb38c, b=0xb38c, v=4, name="LV"}, + {a=0xb38d, b=0xb3a7, v=5, name="LVT"}, + {a=0xb3a8, b=0xb3a8, v=4, name="LV"}, + {a=0xb3a9, b=0xb3c3, v=5, name="LVT"}, + {a=0xb3c4, b=0xb3c4, v=4, name="LV"}, + {a=0xb3c5, b=0xb3df, v=5, name="LVT"}, + {a=0xb3e0, b=0xb3e0, v=4, name="LV"}, + {a=0xb3e1, b=0xb3fb, v=5, name="LVT"}, + {a=0xb3fc, b=0xb3fc, v=4, name="LV"}, + {a=0xb3fd, b=0xb417, v=5, name="LVT"}, + {a=0xb418, b=0xb418, v=4, name="LV"}, + {a=0xb419, b=0xb433, v=5, name="LVT"}, + {a=0xb434, b=0xb434, v=4, name="LV"}, + {a=0xb435, b=0xb44f, v=5, name="LVT"}, + {a=0xb450, b=0xb450, v=4, name="LV"}, + {a=0xb451, b=0xb46b, v=5, name="LVT"}, + {a=0xb46c, b=0xb46c, v=4, name="LV"}, + {a=0xb46d, b=0xb487, v=5, name="LVT"}, + {a=0xb488, b=0xb488, v=4, name="LV"}, + {a=0xb489, b=0xb4a3, v=5, name="LVT"}, + {a=0xb4a4, b=0xb4a4, v=4, name="LV"}, + {a=0xb4a5, b=0xb4bf, v=5, name="LVT"}, + {a=0xb4c0, b=0xb4c0, v=4, name="LV"}, + {a=0xb4c1, b=0xb4db, v=5, name="LVT"}, + {a=0xb4dc, b=0xb4dc, v=4, name="LV"}, + {a=0xb4dd, b=0xb4f7, v=5, name="LVT"}, + {a=0xb4f8, b=0xb4f8, v=4, name="LV"}, + {a=0xb4f9, b=0xb513, v=5, name="LVT"}, + {a=0xb514, b=0xb514, v=4, name="LV"}, + {a=0xb515, b=0xb52f, v=5, name="LVT"}, + {a=0xb530, b=0xb530, v=4, name="LV"}, + {a=0xb531, b=0xb54b, v=5, name="LVT"}, + {a=0xb54c, b=0xb54c, v=4, name="LV"}, + {a=0xb54d, b=0xb567, v=5, name="LVT"}, + {a=0xb568, b=0xb568, v=4, name="LV"}, + {a=0xb569, b=0xb583, v=5, name="LVT"}, + {a=0xb584, b=0xb584, v=4, name="LV"}, + {a=0xb585, b=0xb59f, v=5, name="LVT"}, + {a=0xb5a0, b=0xb5a0, v=4, name="LV"}, + {a=0xb5a1, b=0xb5bb, v=5, name="LVT"}, + {a=0xb5bc, b=0xb5bc, v=4, name="LV"}, + {a=0xb5bd, b=0xb5d7, v=5, name="LVT"}, + {a=0xb5d8, b=0xb5d8, v=4, name="LV"}, + {a=0xb5d9, b=0xb5f3, v=5, name="LVT"}, + {a=0xb5f4, b=0xb5f4, v=4, name="LV"}, + {a=0xb5f5, b=0xb60f, v=5, name="LVT"}, + {a=0xb610, b=0xb610, v=4, name="LV"}, + {a=0xb611, b=0xb62b, v=5, name="LVT"}, + {a=0xb62c, b=0xb62c, v=4, name="LV"}, + {a=0xb62d, b=0xb647, v=5, name="LVT"}, + {a=0xb648, b=0xb648, v=4, name="LV"}, + {a=0xb649, b=0xb663, v=5, name="LVT"}, + {a=0xb664, b=0xb664, v=4, name="LV"}, + {a=0xb665, b=0xb67f, v=5, name="LVT"}, + {a=0xb680, b=0xb680, v=4, name="LV"}, + {a=0xb681, b=0xb69b, v=5, name="LVT"}, + {a=0xb69c, b=0xb69c, v=4, name="LV"}, + {a=0xb69d, b=0xb6b7, v=5, name="LVT"}, + {a=0xb6b8, b=0xb6b8, v=4, name="LV"}, + {a=0xb6b9, b=0xb6d3, v=5, name="LVT"}, + {a=0xb6d4, b=0xb6d4, v=4, name="LV"}, + {a=0xb6d5, b=0xb6ef, v=5, name="LVT"}, + {a=0xb6f0, b=0xb6f0, v=4, name="LV"}, + {a=0xb6f1, b=0xb70b, v=5, name="LVT"}, + {a=0xb70c, b=0xb70c, v=4, name="LV"}, + {a=0xb70d, b=0xb727, v=5, name="LVT"}, + {a=0xb728, b=0xb728, v=4, name="LV"}, + {a=0xb729, b=0xb743, v=5, name="LVT"}, + {a=0xb744, b=0xb744, v=4, name="LV"}, + {a=0xb745, b=0xb75f, v=5, name="LVT"}, + {a=0xb760, b=0xb760, v=4, name="LV"}, + {a=0xb761, b=0xb77b, v=5, name="LVT"}, + {a=0xb77c, b=0xb77c, v=4, name="LV"}, + {a=0xb77d, b=0xb797, v=5, name="LVT"}, + {a=0xb798, b=0xb798, v=4, name="LV"}, + {a=0xb799, b=0xb7b3, v=5, name="LVT"}, + {a=0xb7b4, b=0xb7b4, v=4, name="LV"}, + {a=0xb7b5, b=0xb7cf, v=5, name="LVT"}, + {a=0xb7d0, b=0xb7d0, v=4, name="LV"}, + {a=0xb7d1, b=0xb7eb, v=5, name="LVT"}, + {a=0xb7ec, b=0xb7ec, v=4, name="LV"}, + {a=0xb7ed, b=0xb807, v=5, name="LVT"}, + {a=0xb808, b=0xb808, v=4, name="LV"}, + {a=0xb809, b=0xb823, v=5, name="LVT"}, + {a=0xb824, b=0xb824, v=4, name="LV"}, + {a=0xb825, b=0xb83f, v=5, name="LVT"}, + {a=0xb840, b=0xb840, v=4, name="LV"}, + {a=0xb841, b=0xb85b, v=5, name="LVT"}, + {a=0xb85c, b=0xb85c, v=4, name="LV"}, + {a=0xb85d, b=0xb877, v=5, name="LVT"}, + {a=0xb878, b=0xb878, v=4, name="LV"}, + {a=0xb879, b=0xb893, v=5, name="LVT"}, + {a=0xb894, b=0xb894, v=4, name="LV"}, + {a=0xb895, b=0xb8af, v=5, name="LVT"}, + {a=0xb8b0, b=0xb8b0, v=4, name="LV"}, + {a=0xb8b1, b=0xb8cb, v=5, name="LVT"}, + {a=0xb8cc, b=0xb8cc, v=4, name="LV"}, + {a=0xb8cd, b=0xb8e7, v=5, name="LVT"}, + {a=0xb8e8, b=0xb8e8, v=4, name="LV"}, + {a=0xb8e9, b=0xb903, v=5, name="LVT"}, + {a=0xb904, b=0xb904, v=4, name="LV"}, + {a=0xb905, b=0xb91f, v=5, name="LVT"}, + {a=0xb920, b=0xb920, v=4, name="LV"}, + {a=0xb921, b=0xb93b, v=5, name="LVT"}, + {a=0xb93c, b=0xb93c, v=4, name="LV"}, + {a=0xb93d, b=0xb957, v=5, name="LVT"}, + {a=0xb958, b=0xb958, v=4, name="LV"}, + {a=0xb959, b=0xb973, v=5, name="LVT"}, + {a=0xb974, b=0xb974, v=4, name="LV"}, + {a=0xb975, b=0xb98f, v=5, name="LVT"}, + {a=0xb990, b=0xb990, v=4, name="LV"}, + {a=0xb991, b=0xb9ab, v=5, name="LVT"}, + {a=0xb9ac, b=0xb9ac, v=4, name="LV"}, + {a=0xb9ad, b=0xb9c7, v=5, name="LVT"}, + {a=0xb9c8, b=0xb9c8, v=4, name="LV"}, + {a=0xb9c9, b=0xb9e3, v=5, name="LVT"}, + {a=0xb9e4, b=0xb9e4, v=4, name="LV"}, + {a=0xb9e5, b=0xb9ff, v=5, name="LVT"}, + {a=0xba00, b=0xba00, v=4, name="LV"}, + {a=0xba01, b=0xba1b, v=5, name="LVT"}, + {a=0xba1c, b=0xba1c, v=4, name="LV"}, + {a=0xba1d, b=0xba37, v=5, name="LVT"}, + {a=0xba38, b=0xba38, v=4, name="LV"}, + {a=0xba39, b=0xba53, v=5, name="LVT"}, + {a=0xba54, b=0xba54, v=4, name="LV"}, + {a=0xba55, b=0xba6f, v=5, name="LVT"}, + {a=0xba70, b=0xba70, v=4, name="LV"}, + {a=0xba71, b=0xba8b, v=5, name="LVT"}, + {a=0xba8c, b=0xba8c, v=4, name="LV"}, + {a=0xba8d, b=0xbaa7, v=5, name="LVT"}, + {a=0xbaa8, b=0xbaa8, v=4, name="LV"}, + {a=0xbaa9, b=0xbac3, v=5, name="LVT"}, + {a=0xbac4, b=0xbac4, v=4, name="LV"}, + {a=0xbac5, b=0xbadf, v=5, name="LVT"}, + {a=0xbae0, b=0xbae0, v=4, name="LV"}, + {a=0xbae1, b=0xbafb, v=5, name="LVT"}, + {a=0xbafc, b=0xbafc, v=4, name="LV"}, + {a=0xbafd, b=0xbb17, v=5, name="LVT"}, + {a=0xbb18, b=0xbb18, v=4, name="LV"}, + {a=0xbb19, b=0xbb33, v=5, name="LVT"}, + {a=0xbb34, b=0xbb34, v=4, name="LV"}, + {a=0xbb35, b=0xbb4f, v=5, name="LVT"}, + {a=0xbb50, b=0xbb50, v=4, name="LV"}, + {a=0xbb51, b=0xbb6b, v=5, name="LVT"}, + {a=0xbb6c, b=0xbb6c, v=4, name="LV"}, + {a=0xbb6d, b=0xbb87, v=5, name="LVT"}, + {a=0xbb88, b=0xbb88, v=4, name="LV"}, + {a=0xbb89, b=0xbba3, v=5, name="LVT"}, + {a=0xbba4, b=0xbba4, v=4, name="LV"}, + {a=0xbba5, b=0xbbbf, v=5, name="LVT"}, + {a=0xbbc0, b=0xbbc0, v=4, name="LV"}, + {a=0xbbc1, b=0xbbdb, v=5, name="LVT"}, + {a=0xbbdc, b=0xbbdc, v=4, name="LV"}, + {a=0xbbdd, b=0xbbf7, v=5, name="LVT"}, + {a=0xbbf8, b=0xbbf8, v=4, name="LV"}, + {a=0xbbf9, b=0xbc13, v=5, name="LVT"}, + {a=0xbc14, b=0xbc14, v=4, name="LV"}, + {a=0xbc15, b=0xbc2f, v=5, name="LVT"}, + {a=0xbc30, b=0xbc30, v=4, name="LV"}, + {a=0xbc31, b=0xbc4b, v=5, name="LVT"}, + {a=0xbc4c, b=0xbc4c, v=4, name="LV"}, + {a=0xbc4d, b=0xbc67, v=5, name="LVT"}, + {a=0xbc68, b=0xbc68, v=4, name="LV"}, + {a=0xbc69, b=0xbc83, v=5, name="LVT"}, + {a=0xbc84, b=0xbc84, v=4, name="LV"}, + {a=0xbc85, b=0xbc9f, v=5, name="LVT"}, + {a=0xbca0, b=0xbca0, v=4, name="LV"}, + {a=0xbca1, b=0xbcbb, v=5, name="LVT"}, + {a=0xbcbc, b=0xbcbc, v=4, name="LV"}, + {a=0xbcbd, b=0xbcd7, v=5, name="LVT"}, + {a=0xbcd8, b=0xbcd8, v=4, name="LV"}, + {a=0xbcd9, b=0xbcf3, v=5, name="LVT"}, + {a=0xbcf4, b=0xbcf4, v=4, name="LV"}, + {a=0xbcf5, b=0xbd0f, v=5, name="LVT"}, + {a=0xbd10, b=0xbd10, v=4, name="LV"}, + {a=0xbd11, b=0xbd2b, v=5, name="LVT"}, + {a=0xbd2c, b=0xbd2c, v=4, name="LV"}, + {a=0xbd2d, b=0xbd47, v=5, name="LVT"}, + {a=0xbd48, b=0xbd48, v=4, name="LV"}, + {a=0xbd49, b=0xbd63, v=5, name="LVT"}, + {a=0xbd64, b=0xbd64, v=4, name="LV"}, + {a=0xbd65, b=0xbd7f, v=5, name="LVT"}, + {a=0xbd80, b=0xbd80, v=4, name="LV"}, + {a=0xbd81, b=0xbd9b, v=5, name="LVT"}, + {a=0xbd9c, b=0xbd9c, v=4, name="LV"}, + {a=0xbd9d, b=0xbdb7, v=5, name="LVT"}, + {a=0xbdb8, b=0xbdb8, v=4, name="LV"}, + {a=0xbdb9, b=0xbdd3, v=5, name="LVT"}, + {a=0xbdd4, b=0xbdd4, v=4, name="LV"}, + {a=0xbdd5, b=0xbdef, v=5, name="LVT"}, + {a=0xbdf0, b=0xbdf0, v=4, name="LV"}, + {a=0xbdf1, b=0xbe0b, v=5, name="LVT"}, + {a=0xbe0c, b=0xbe0c, v=4, name="LV"}, + {a=0xbe0d, b=0xbe27, v=5, name="LVT"}, + {a=0xbe28, b=0xbe28, v=4, name="LV"}, + {a=0xbe29, b=0xbe43, v=5, name="LVT"}, + {a=0xbe44, b=0xbe44, v=4, name="LV"}, + {a=0xbe45, b=0xbe5f, v=5, name="LVT"}, + {a=0xbe60, b=0xbe60, v=4, name="LV"}, + {a=0xbe61, b=0xbe7b, v=5, name="LVT"}, + {a=0xbe7c, b=0xbe7c, v=4, name="LV"}, + {a=0xbe7d, b=0xbe97, v=5, name="LVT"}, + {a=0xbe98, b=0xbe98, v=4, name="LV"}, + {a=0xbe99, b=0xbeb3, v=5, name="LVT"}, + {a=0xbeb4, b=0xbeb4, v=4, name="LV"}, + {a=0xbeb5, b=0xbecf, v=5, name="LVT"}, + {a=0xbed0, b=0xbed0, v=4, name="LV"}, + {a=0xbed1, b=0xbeeb, v=5, name="LVT"}, + {a=0xbeec, b=0xbeec, v=4, name="LV"}, + {a=0xbeed, b=0xbf07, v=5, name="LVT"}, + {a=0xbf08, b=0xbf08, v=4, name="LV"}, + {a=0xbf09, b=0xbf23, v=5, name="LVT"}, + {a=0xbf24, b=0xbf24, v=4, name="LV"}, + {a=0xbf25, b=0xbf3f, v=5, name="LVT"}, + {a=0xbf40, b=0xbf40, v=4, name="LV"}, + {a=0xbf41, b=0xbf5b, v=5, name="LVT"}, + {a=0xbf5c, b=0xbf5c, v=4, name="LV"}, + {a=0xbf5d, b=0xbf77, v=5, name="LVT"}, + {a=0xbf78, b=0xbf78, v=4, name="LV"}, + {a=0xbf79, b=0xbf93, v=5, name="LVT"}, + {a=0xbf94, b=0xbf94, v=4, name="LV"}, + {a=0xbf95, b=0xbfaf, v=5, name="LVT"}, + {a=0xbfb0, b=0xbfb0, v=4, name="LV"}, + {a=0xbfb1, b=0xbfcb, v=5, name="LVT"}, + {a=0xbfcc, b=0xbfcc, v=4, name="LV"}, + {a=0xbfcd, b=0xbfe7, v=5, name="LVT"}, + {a=0xbfe8, b=0xbfe8, v=4, name="LV"}, + {a=0xbfe9, b=0xc003, v=5, name="LVT"}, + {a=0xc004, b=0xc004, v=4, name="LV"}, + {a=0xc005, b=0xc01f, v=5, name="LVT"}, + {a=0xc020, b=0xc020, v=4, name="LV"}, + {a=0xc021, b=0xc03b, v=5, name="LVT"}, + {a=0xc03c, b=0xc03c, v=4, name="LV"}, + {a=0xc03d, b=0xc057, v=5, name="LVT"}, + {a=0xc058, b=0xc058, v=4, name="LV"}, + {a=0xc059, b=0xc073, v=5, name="LVT"}, + {a=0xc074, b=0xc074, v=4, name="LV"}, + {a=0xc075, b=0xc08f, v=5, name="LVT"}, + {a=0xc090, b=0xc090, v=4, name="LV"}, + {a=0xc091, b=0xc0ab, v=5, name="LVT"}, + {a=0xc0ac, b=0xc0ac, v=4, name="LV"}, + {a=0xc0ad, b=0xc0c7, v=5, name="LVT"}, + {a=0xc0c8, b=0xc0c8, v=4, name="LV"}, + {a=0xc0c9, b=0xc0e3, v=5, name="LVT"}, + {a=0xc0e4, b=0xc0e4, v=4, name="LV"}, + {a=0xc0e5, b=0xc0ff, v=5, name="LVT"}, + {a=0xc100, b=0xc100, v=4, name="LV"}, + {a=0xc101, b=0xc11b, v=5, name="LVT"}, + {a=0xc11c, b=0xc11c, v=4, name="LV"}, + {a=0xc11d, b=0xc137, v=5, name="LVT"}, + {a=0xc138, b=0xc138, v=4, name="LV"}, + {a=0xc139, b=0xc153, v=5, name="LVT"}, + {a=0xc154, b=0xc154, v=4, name="LV"}, + {a=0xc155, b=0xc16f, v=5, name="LVT"}, + {a=0xc170, b=0xc170, v=4, name="LV"}, + {a=0xc171, b=0xc18b, v=5, name="LVT"}, + {a=0xc18c, b=0xc18c, v=4, name="LV"}, + {a=0xc18d, b=0xc1a7, v=5, name="LVT"}, + {a=0xc1a8, b=0xc1a8, v=4, name="LV"}, + {a=0xc1a9, b=0xc1c3, v=5, name="LVT"}, + {a=0xc1c4, b=0xc1c4, v=4, name="LV"}, + {a=0xc1c5, b=0xc1df, v=5, name="LVT"}, + {a=0xc1e0, b=0xc1e0, v=4, name="LV"}, + {a=0xc1e1, b=0xc1fb, v=5, name="LVT"}, + {a=0xc1fc, b=0xc1fc, v=4, name="LV"}, + {a=0xc1fd, b=0xc217, v=5, name="LVT"}, + {a=0xc218, b=0xc218, v=4, name="LV"}, + {a=0xc219, b=0xc233, v=5, name="LVT"}, + {a=0xc234, b=0xc234, v=4, name="LV"}, + {a=0xc235, b=0xc24f, v=5, name="LVT"}, + {a=0xc250, b=0xc250, v=4, name="LV"}, + {a=0xc251, b=0xc26b, v=5, name="LVT"}, + {a=0xc26c, b=0xc26c, v=4, name="LV"}, + {a=0xc26d, b=0xc287, v=5, name="LVT"}, + {a=0xc288, b=0xc288, v=4, name="LV"}, + {a=0xc289, b=0xc2a3, v=5, name="LVT"}, + {a=0xc2a4, b=0xc2a4, v=4, name="LV"}, + {a=0xc2a5, b=0xc2bf, v=5, name="LVT"}, + {a=0xc2c0, b=0xc2c0, v=4, name="LV"}, + {a=0xc2c1, b=0xc2db, v=5, name="LVT"}, + {a=0xc2dc, b=0xc2dc, v=4, name="LV"}, + {a=0xc2dd, b=0xc2f7, v=5, name="LVT"}, + {a=0xc2f8, b=0xc2f8, v=4, name="LV"}, + {a=0xc2f9, b=0xc313, v=5, name="LVT"}, + {a=0xc314, b=0xc314, v=4, name="LV"}, + {a=0xc315, b=0xc32f, v=5, name="LVT"}, + {a=0xc330, b=0xc330, v=4, name="LV"}, + {a=0xc331, b=0xc34b, v=5, name="LVT"}, + {a=0xc34c, b=0xc34c, v=4, name="LV"}, + {a=0xc34d, b=0xc367, v=5, name="LVT"}, + {a=0xc368, b=0xc368, v=4, name="LV"}, + {a=0xc369, b=0xc383, v=5, name="LVT"}, + {a=0xc384, b=0xc384, v=4, name="LV"}, + {a=0xc385, b=0xc39f, v=5, name="LVT"}, + {a=0xc3a0, b=0xc3a0, v=4, name="LV"}, + {a=0xc3a1, b=0xc3bb, v=5, name="LVT"}, + {a=0xc3bc, b=0xc3bc, v=4, name="LV"}, + {a=0xc3bd, b=0xc3d7, v=5, name="LVT"}, + {a=0xc3d8, b=0xc3d8, v=4, name="LV"}, + {a=0xc3d9, b=0xc3f3, v=5, name="LVT"}, + {a=0xc3f4, b=0xc3f4, v=4, name="LV"}, + {a=0xc3f5, b=0xc40f, v=5, name="LVT"}, + {a=0xc410, b=0xc410, v=4, name="LV"}, + {a=0xc411, b=0xc42b, v=5, name="LVT"}, + {a=0xc42c, b=0xc42c, v=4, name="LV"}, + {a=0xc42d, b=0xc447, v=5, name="LVT"}, + {a=0xc448, b=0xc448, v=4, name="LV"}, + {a=0xc449, b=0xc463, v=5, name="LVT"}, + {a=0xc464, b=0xc464, v=4, name="LV"}, + {a=0xc465, b=0xc47f, v=5, name="LVT"}, + {a=0xc480, b=0xc480, v=4, name="LV"}, + {a=0xc481, b=0xc49b, v=5, name="LVT"}, + {a=0xc49c, b=0xc49c, v=4, name="LV"}, + {a=0xc49d, b=0xc4b7, v=5, name="LVT"}, + {a=0xc4b8, b=0xc4b8, v=4, name="LV"}, + {a=0xc4b9, b=0xc4d3, v=5, name="LVT"}, + {a=0xc4d4, b=0xc4d4, v=4, name="LV"}, + {a=0xc4d5, b=0xc4ef, v=5, name="LVT"}, + {a=0xc4f0, b=0xc4f0, v=4, name="LV"}, + {a=0xc4f1, b=0xc50b, v=5, name="LVT"}, + {a=0xc50c, b=0xc50c, v=4, name="LV"}, + {a=0xc50d, b=0xc527, v=5, name="LVT"}, + {a=0xc528, b=0xc528, v=4, name="LV"}, + {a=0xc529, b=0xc543, v=5, name="LVT"}, + {a=0xc544, b=0xc544, v=4, name="LV"}, + {a=0xc545, b=0xc55f, v=5, name="LVT"}, + {a=0xc560, b=0xc560, v=4, name="LV"}, + {a=0xc561, b=0xc57b, v=5, name="LVT"}, + {a=0xc57c, b=0xc57c, v=4, name="LV"}, + {a=0xc57d, b=0xc597, v=5, name="LVT"}, + {a=0xc598, b=0xc598, v=4, name="LV"}, + {a=0xc599, b=0xc5b3, v=5, name="LVT"}, + {a=0xc5b4, b=0xc5b4, v=4, name="LV"}, + {a=0xc5b5, b=0xc5cf, v=5, name="LVT"}, + {a=0xc5d0, b=0xc5d0, v=4, name="LV"}, + {a=0xc5d1, b=0xc5eb, v=5, name="LVT"}, + {a=0xc5ec, b=0xc5ec, v=4, name="LV"}, + {a=0xc5ed, b=0xc607, v=5, name="LVT"}, + {a=0xc608, b=0xc608, v=4, name="LV"}, + {a=0xc609, b=0xc623, v=5, name="LVT"}, + {a=0xc624, b=0xc624, v=4, name="LV"}, + {a=0xc625, b=0xc63f, v=5, name="LVT"}, + {a=0xc640, b=0xc640, v=4, name="LV"}, + {a=0xc641, b=0xc65b, v=5, name="LVT"}, + {a=0xc65c, b=0xc65c, v=4, name="LV"}, + {a=0xc65d, b=0xc677, v=5, name="LVT"}, + {a=0xc678, b=0xc678, v=4, name="LV"}, + {a=0xc679, b=0xc693, v=5, name="LVT"}, + {a=0xc694, b=0xc694, v=4, name="LV"}, + {a=0xc695, b=0xc6af, v=5, name="LVT"}, + {a=0xc6b0, b=0xc6b0, v=4, name="LV"}, + {a=0xc6b1, b=0xc6cb, v=5, name="LVT"}, + {a=0xc6cc, b=0xc6cc, v=4, name="LV"}, + {a=0xc6cd, b=0xc6e7, v=5, name="LVT"}, + {a=0xc6e8, b=0xc6e8, v=4, name="LV"}, + {a=0xc6e9, b=0xc703, v=5, name="LVT"}, + {a=0xc704, b=0xc704, v=4, name="LV"}, + {a=0xc705, b=0xc71f, v=5, name="LVT"}, + {a=0xc720, b=0xc720, v=4, name="LV"}, + {a=0xc721, b=0xc73b, v=5, name="LVT"}, + {a=0xc73c, b=0xc73c, v=4, name="LV"}, + {a=0xc73d, b=0xc757, v=5, name="LVT"}, + {a=0xc758, b=0xc758, v=4, name="LV"}, + {a=0xc759, b=0xc773, v=5, name="LVT"}, + {a=0xc774, b=0xc774, v=4, name="LV"}, + {a=0xc775, b=0xc78f, v=5, name="LVT"}, + {a=0xc790, b=0xc790, v=4, name="LV"}, + {a=0xc791, b=0xc7ab, v=5, name="LVT"}, + {a=0xc7ac, b=0xc7ac, v=4, name="LV"}, + {a=0xc7ad, b=0xc7c7, v=5, name="LVT"}, + {a=0xc7c8, b=0xc7c8, v=4, name="LV"}, + {a=0xc7c9, b=0xc7e3, v=5, name="LVT"}, + {a=0xc7e4, b=0xc7e4, v=4, name="LV"}, + {a=0xc7e5, b=0xc7ff, v=5, name="LVT"}, + {a=0xc800, b=0xc800, v=4, name="LV"}, + {a=0xc801, b=0xc81b, v=5, name="LVT"}, + {a=0xc81c, b=0xc81c, v=4, name="LV"}, + {a=0xc81d, b=0xc837, v=5, name="LVT"}, + {a=0xc838, b=0xc838, v=4, name="LV"}, + {a=0xc839, b=0xc853, v=5, name="LVT"}, + {a=0xc854, b=0xc854, v=4, name="LV"}, + {a=0xc855, b=0xc86f, v=5, name="LVT"}, + {a=0xc870, b=0xc870, v=4, name="LV"}, + {a=0xc871, b=0xc88b, v=5, name="LVT"}, + {a=0xc88c, b=0xc88c, v=4, name="LV"}, + {a=0xc88d, b=0xc8a7, v=5, name="LVT"}, + {a=0xc8a8, b=0xc8a8, v=4, name="LV"}, + {a=0xc8a9, b=0xc8c3, v=5, name="LVT"}, + {a=0xc8c4, b=0xc8c4, v=4, name="LV"}, + {a=0xc8c5, b=0xc8df, v=5, name="LVT"}, + {a=0xc8e0, b=0xc8e0, v=4, name="LV"}, + {a=0xc8e1, b=0xc8fb, v=5, name="LVT"}, + {a=0xc8fc, b=0xc8fc, v=4, name="LV"}, + {a=0xc8fd, b=0xc917, v=5, name="LVT"}, + {a=0xc918, b=0xc918, v=4, name="LV"}, + {a=0xc919, b=0xc933, v=5, name="LVT"}, + {a=0xc934, b=0xc934, v=4, name="LV"}, + {a=0xc935, b=0xc94f, v=5, name="LVT"}, + {a=0xc950, b=0xc950, v=4, name="LV"}, + {a=0xc951, b=0xc96b, v=5, name="LVT"}, + {a=0xc96c, b=0xc96c, v=4, name="LV"}, + {a=0xc96d, b=0xc987, v=5, name="LVT"}, + {a=0xc988, b=0xc988, v=4, name="LV"}, + {a=0xc989, b=0xc9a3, v=5, name="LVT"}, + {a=0xc9a4, b=0xc9a4, v=4, name="LV"}, + {a=0xc9a5, b=0xc9bf, v=5, name="LVT"}, + {a=0xc9c0, b=0xc9c0, v=4, name="LV"}, + {a=0xc9c1, b=0xc9db, v=5, name="LVT"}, + {a=0xc9dc, b=0xc9dc, v=4, name="LV"}, + {a=0xc9dd, b=0xc9f7, v=5, name="LVT"}, + {a=0xc9f8, b=0xc9f8, v=4, name="LV"}, + {a=0xc9f9, b=0xca13, v=5, name="LVT"}, + {a=0xca14, b=0xca14, v=4, name="LV"}, + {a=0xca15, b=0xca2f, v=5, name="LVT"}, + {a=0xca30, b=0xca30, v=4, name="LV"}, + {a=0xca31, b=0xca4b, v=5, name="LVT"}, + {a=0xca4c, b=0xca4c, v=4, name="LV"}, + {a=0xca4d, b=0xca67, v=5, name="LVT"}, + {a=0xca68, b=0xca68, v=4, name="LV"}, + {a=0xca69, b=0xca83, v=5, name="LVT"}, + {a=0xca84, b=0xca84, v=4, name="LV"}, + {a=0xca85, b=0xca9f, v=5, name="LVT"}, + {a=0xcaa0, b=0xcaa0, v=4, name="LV"}, + {a=0xcaa1, b=0xcabb, v=5, name="LVT"}, + {a=0xcabc, b=0xcabc, v=4, name="LV"}, + {a=0xcabd, b=0xcad7, v=5, name="LVT"}, + {a=0xcad8, b=0xcad8, v=4, name="LV"}, + {a=0xcad9, b=0xcaf3, v=5, name="LVT"}, + {a=0xcaf4, b=0xcaf4, v=4, name="LV"}, + {a=0xcaf5, b=0xcb0f, v=5, name="LVT"}, + {a=0xcb10, b=0xcb10, v=4, name="LV"}, + {a=0xcb11, b=0xcb2b, v=5, name="LVT"}, + {a=0xcb2c, b=0xcb2c, v=4, name="LV"}, + {a=0xcb2d, b=0xcb47, v=5, name="LVT"}, + {a=0xcb48, b=0xcb48, v=4, name="LV"}, + {a=0xcb49, b=0xcb63, v=5, name="LVT"}, + {a=0xcb64, b=0xcb64, v=4, name="LV"}, + {a=0xcb65, b=0xcb7f, v=5, name="LVT"}, + {a=0xcb80, b=0xcb80, v=4, name="LV"}, + {a=0xcb81, b=0xcb9b, v=5, name="LVT"}, + {a=0xcb9c, b=0xcb9c, v=4, name="LV"}, + {a=0xcb9d, b=0xcbb7, v=5, name="LVT"}, + {a=0xcbb8, b=0xcbb8, v=4, name="LV"}, + {a=0xcbb9, b=0xcbd3, v=5, name="LVT"}, + {a=0xcbd4, b=0xcbd4, v=4, name="LV"}, + {a=0xcbd5, b=0xcbef, v=5, name="LVT"}, + {a=0xcbf0, b=0xcbf0, v=4, name="LV"}, + {a=0xcbf1, b=0xcc0b, v=5, name="LVT"}, + {a=0xcc0c, b=0xcc0c, v=4, name="LV"}, + {a=0xcc0d, b=0xcc27, v=5, name="LVT"}, + {a=0xcc28, b=0xcc28, v=4, name="LV"}, + {a=0xcc29, b=0xcc43, v=5, name="LVT"}, + {a=0xcc44, b=0xcc44, v=4, name="LV"}, + {a=0xcc45, b=0xcc5f, v=5, name="LVT"}, + {a=0xcc60, b=0xcc60, v=4, name="LV"}, + {a=0xcc61, b=0xcc7b, v=5, name="LVT"}, + {a=0xcc7c, b=0xcc7c, v=4, name="LV"}, + {a=0xcc7d, b=0xcc97, v=5, name="LVT"}, + {a=0xcc98, b=0xcc98, v=4, name="LV"}, + {a=0xcc99, b=0xccb3, v=5, name="LVT"}, + {a=0xccb4, b=0xccb4, v=4, name="LV"}, + {a=0xccb5, b=0xcccf, v=5, name="LVT"}, + {a=0xccd0, b=0xccd0, v=4, name="LV"}, + {a=0xccd1, b=0xcceb, v=5, name="LVT"}, + {a=0xccec, b=0xccec, v=4, name="LV"}, + {a=0xcced, b=0xcd07, v=5, name="LVT"}, + {a=0xcd08, b=0xcd08, v=4, name="LV"}, + {a=0xcd09, b=0xcd23, v=5, name="LVT"}, + {a=0xcd24, b=0xcd24, v=4, name="LV"}, + {a=0xcd25, b=0xcd3f, v=5, name="LVT"}, + {a=0xcd40, b=0xcd40, v=4, name="LV"}, + {a=0xcd41, b=0xcd5b, v=5, name="LVT"}, + {a=0xcd5c, b=0xcd5c, v=4, name="LV"}, + {a=0xcd5d, b=0xcd77, v=5, name="LVT"}, + {a=0xcd78, b=0xcd78, v=4, name="LV"}, + {a=0xcd79, b=0xcd93, v=5, name="LVT"}, + {a=0xcd94, b=0xcd94, v=4, name="LV"}, + {a=0xcd95, b=0xcdaf, v=5, name="LVT"}, + {a=0xcdb0, b=0xcdb0, v=4, name="LV"}, + {a=0xcdb1, b=0xcdcb, v=5, name="LVT"}, + {a=0xcdcc, b=0xcdcc, v=4, name="LV"}, + {a=0xcdcd, b=0xcde7, v=5, name="LVT"}, + {a=0xcde8, b=0xcde8, v=4, name="LV"}, + {a=0xcde9, b=0xce03, v=5, name="LVT"}, + {a=0xce04, b=0xce04, v=4, name="LV"}, + {a=0xce05, b=0xce1f, v=5, name="LVT"}, + {a=0xce20, b=0xce20, v=4, name="LV"}, + {a=0xce21, b=0xce3b, v=5, name="LVT"}, + {a=0xce3c, b=0xce3c, v=4, name="LV"}, + {a=0xce3d, b=0xce57, v=5, name="LVT"}, + {a=0xce58, b=0xce58, v=4, name="LV"}, + {a=0xce59, b=0xce73, v=5, name="LVT"}, + {a=0xce74, b=0xce74, v=4, name="LV"}, + {a=0xce75, b=0xce8f, v=5, name="LVT"}, + {a=0xce90, b=0xce90, v=4, name="LV"}, + {a=0xce91, b=0xceab, v=5, name="LVT"}, + {a=0xceac, b=0xceac, v=4, name="LV"}, + {a=0xcead, b=0xcec7, v=5, name="LVT"}, + {a=0xcec8, b=0xcec8, v=4, name="LV"}, + {a=0xcec9, b=0xcee3, v=5, name="LVT"}, + {a=0xcee4, b=0xcee4, v=4, name="LV"}, + {a=0xcee5, b=0xceff, v=5, name="LVT"}, + {a=0xcf00, b=0xcf00, v=4, name="LV"}, + {a=0xcf01, b=0xcf1b, v=5, name="LVT"}, + {a=0xcf1c, b=0xcf1c, v=4, name="LV"}, + {a=0xcf1d, b=0xcf37, v=5, name="LVT"}, + {a=0xcf38, b=0xcf38, v=4, name="LV"}, + {a=0xcf39, b=0xcf53, v=5, name="LVT"}, + {a=0xcf54, b=0xcf54, v=4, name="LV"}, + {a=0xcf55, b=0xcf6f, v=5, name="LVT"}, + {a=0xcf70, b=0xcf70, v=4, name="LV"}, + {a=0xcf71, b=0xcf8b, v=5, name="LVT"}, + {a=0xcf8c, b=0xcf8c, v=4, name="LV"}, + {a=0xcf8d, b=0xcfa7, v=5, name="LVT"}, + {a=0xcfa8, b=0xcfa8, v=4, name="LV"}, + {a=0xcfa9, b=0xcfc3, v=5, name="LVT"}, + {a=0xcfc4, b=0xcfc4, v=4, name="LV"}, + {a=0xcfc5, b=0xcfdf, v=5, name="LVT"}, + {a=0xcfe0, b=0xcfe0, v=4, name="LV"}, + {a=0xcfe1, b=0xcffb, v=5, name="LVT"}, + {a=0xcffc, b=0xcffc, v=4, name="LV"}, + {a=0xcffd, b=0xd017, v=5, name="LVT"}, + {a=0xd018, b=0xd018, v=4, name="LV"}, + {a=0xd019, b=0xd033, v=5, name="LVT"}, + {a=0xd034, b=0xd034, v=4, name="LV"}, + {a=0xd035, b=0xd04f, v=5, name="LVT"}, + {a=0xd050, b=0xd050, v=4, name="LV"}, + {a=0xd051, b=0xd06b, v=5, name="LVT"}, + {a=0xd06c, b=0xd06c, v=4, name="LV"}, + {a=0xd06d, b=0xd087, v=5, name="LVT"}, + {a=0xd088, b=0xd088, v=4, name="LV"}, + {a=0xd089, b=0xd0a3, v=5, name="LVT"}, + {a=0xd0a4, b=0xd0a4, v=4, name="LV"}, + {a=0xd0a5, b=0xd0bf, v=5, name="LVT"}, + {a=0xd0c0, b=0xd0c0, v=4, name="LV"}, + {a=0xd0c1, b=0xd0db, v=5, name="LVT"}, + {a=0xd0dc, b=0xd0dc, v=4, name="LV"}, + {a=0xd0dd, b=0xd0f7, v=5, name="LVT"}, + {a=0xd0f8, b=0xd0f8, v=4, name="LV"}, + {a=0xd0f9, b=0xd113, v=5, name="LVT"}, + {a=0xd114, b=0xd114, v=4, name="LV"}, + {a=0xd115, b=0xd12f, v=5, name="LVT"}, + {a=0xd130, b=0xd130, v=4, name="LV"}, + {a=0xd131, b=0xd14b, v=5, name="LVT"}, + {a=0xd14c, b=0xd14c, v=4, name="LV"}, + {a=0xd14d, b=0xd167, v=5, name="LVT"}, + {a=0xd168, b=0xd168, v=4, name="LV"}, + {a=0xd169, b=0xd183, v=5, name="LVT"}, + {a=0xd184, b=0xd184, v=4, name="LV"}, + {a=0xd185, b=0xd19f, v=5, name="LVT"}, + {a=0xd1a0, b=0xd1a0, v=4, name="LV"}, + {a=0xd1a1, b=0xd1bb, v=5, name="LVT"}, + {a=0xd1bc, b=0xd1bc, v=4, name="LV"}, + {a=0xd1bd, b=0xd1d7, v=5, name="LVT"}, + {a=0xd1d8, b=0xd1d8, v=4, name="LV"}, + {a=0xd1d9, b=0xd1f3, v=5, name="LVT"}, + {a=0xd1f4, b=0xd1f4, v=4, name="LV"}, + {a=0xd1f5, b=0xd20f, v=5, name="LVT"}, + {a=0xd210, b=0xd210, v=4, name="LV"}, + {a=0xd211, b=0xd22b, v=5, name="LVT"}, + {a=0xd22c, b=0xd22c, v=4, name="LV"}, + {a=0xd22d, b=0xd247, v=5, name="LVT"}, + {a=0xd248, b=0xd248, v=4, name="LV"}, + {a=0xd249, b=0xd263, v=5, name="LVT"}, + {a=0xd264, b=0xd264, v=4, name="LV"}, + {a=0xd265, b=0xd27f, v=5, name="LVT"}, + {a=0xd280, b=0xd280, v=4, name="LV"}, + {a=0xd281, b=0xd29b, v=5, name="LVT"}, + {a=0xd29c, b=0xd29c, v=4, name="LV"}, + {a=0xd29d, b=0xd2b7, v=5, name="LVT"}, + {a=0xd2b8, b=0xd2b8, v=4, name="LV"}, + {a=0xd2b9, b=0xd2d3, v=5, name="LVT"}, + {a=0xd2d4, b=0xd2d4, v=4, name="LV"}, + {a=0xd2d5, b=0xd2ef, v=5, name="LVT"}, + {a=0xd2f0, b=0xd2f0, v=4, name="LV"}, + {a=0xd2f1, b=0xd30b, v=5, name="LVT"}, + {a=0xd30c, b=0xd30c, v=4, name="LV"}, + {a=0xd30d, b=0xd327, v=5, name="LVT"}, + {a=0xd328, b=0xd328, v=4, name="LV"}, + {a=0xd329, b=0xd343, v=5, name="LVT"}, + {a=0xd344, b=0xd344, v=4, name="LV"}, + {a=0xd345, b=0xd35f, v=5, name="LVT"}, + {a=0xd360, b=0xd360, v=4, name="LV"}, + {a=0xd361, b=0xd37b, v=5, name="LVT"}, + {a=0xd37c, b=0xd37c, v=4, name="LV"}, + {a=0xd37d, b=0xd397, v=5, name="LVT"}, + {a=0xd398, b=0xd398, v=4, name="LV"}, + {a=0xd399, b=0xd3b3, v=5, name="LVT"}, + {a=0xd3b4, b=0xd3b4, v=4, name="LV"}, + {a=0xd3b5, b=0xd3cf, v=5, name="LVT"}, + {a=0xd3d0, b=0xd3d0, v=4, name="LV"}, + {a=0xd3d1, b=0xd3eb, v=5, name="LVT"}, + {a=0xd3ec, b=0xd3ec, v=4, name="LV"}, + {a=0xd3ed, b=0xd407, v=5, name="LVT"}, + {a=0xd408, b=0xd408, v=4, name="LV"}, + {a=0xd409, b=0xd423, v=5, name="LVT"}, + {a=0xd424, b=0xd424, v=4, name="LV"}, + {a=0xd425, b=0xd43f, v=5, name="LVT"}, + {a=0xd440, b=0xd440, v=4, name="LV"}, + {a=0xd441, b=0xd45b, v=5, name="LVT"}, + {a=0xd45c, b=0xd45c, v=4, name="LV"}, + {a=0xd45d, b=0xd477, v=5, name="LVT"}, + {a=0xd478, b=0xd478, v=4, name="LV"}, + {a=0xd479, b=0xd493, v=5, name="LVT"}, + {a=0xd494, b=0xd494, v=4, name="LV"}, + {a=0xd495, b=0xd4af, v=5, name="LVT"}, + {a=0xd4b0, b=0xd4b0, v=4, name="LV"}, + {a=0xd4b1, b=0xd4cb, v=5, name="LVT"}, + {a=0xd4cc, b=0xd4cc, v=4, name="LV"}, + {a=0xd4cd, b=0xd4e7, v=5, name="LVT"}, + {a=0xd4e8, b=0xd4e8, v=4, name="LV"}, + {a=0xd4e9, b=0xd503, v=5, name="LVT"}, + {a=0xd504, b=0xd504, v=4, name="LV"}, + {a=0xd505, b=0xd51f, v=5, name="LVT"}, + {a=0xd520, b=0xd520, v=4, name="LV"}, + {a=0xd521, b=0xd53b, v=5, name="LVT"}, + {a=0xd53c, b=0xd53c, v=4, name="LV"}, + {a=0xd53d, b=0xd557, v=5, name="LVT"}, + {a=0xd558, b=0xd558, v=4, name="LV"}, + {a=0xd559, b=0xd573, v=5, name="LVT"}, + {a=0xd574, b=0xd574, v=4, name="LV"}, + {a=0xd575, b=0xd58f, v=5, name="LVT"}, + {a=0xd590, b=0xd590, v=4, name="LV"}, + {a=0xd591, b=0xd5ab, v=5, name="LVT"}, + {a=0xd5ac, b=0xd5ac, v=4, name="LV"}, + {a=0xd5ad, b=0xd5c7, v=5, name="LVT"}, + {a=0xd5c8, b=0xd5c8, v=4, name="LV"}, + {a=0xd5c9, b=0xd5e3, v=5, name="LVT"}, + {a=0xd5e4, b=0xd5e4, v=4, name="LV"}, + {a=0xd5e5, b=0xd5ff, v=5, name="LVT"}, + {a=0xd600, b=0xd600, v=4, name="LV"}, + {a=0xd601, b=0xd61b, v=5, name="LVT"}, + {a=0xd61c, b=0xd61c, v=4, name="LV"}, + {a=0xd61d, b=0xd637, v=5, name="LVT"}, + {a=0xd638, b=0xd638, v=4, name="LV"}, + {a=0xd639, b=0xd653, v=5, name="LVT"}, + {a=0xd654, b=0xd654, v=4, name="LV"}, + {a=0xd655, b=0xd66f, v=5, name="LVT"}, + {a=0xd670, b=0xd670, v=4, name="LV"}, + {a=0xd671, b=0xd68b, v=5, name="LVT"}, + {a=0xd68c, b=0xd68c, v=4, name="LV"}, + {a=0xd68d, b=0xd6a7, v=5, name="LVT"}, + {a=0xd6a8, b=0xd6a8, v=4, name="LV"}, + {a=0xd6a9, b=0xd6c3, v=5, name="LVT"}, + {a=0xd6c4, b=0xd6c4, v=4, name="LV"}, + {a=0xd6c5, b=0xd6df, v=5, name="LVT"}, + {a=0xd6e0, b=0xd6e0, v=4, name="LV"}, + {a=0xd6e1, b=0xd6fb, v=5, name="LVT"}, + {a=0xd6fc, b=0xd6fc, v=4, name="LV"}, + {a=0xd6fd, b=0xd717, v=5, name="LVT"}, + {a=0xd718, b=0xd718, v=4, name="LV"}, + {a=0xd719, b=0xd733, v=5, name="LVT"}, + {a=0xd734, b=0xd734, v=4, name="LV"}, + {a=0xd735, b=0xd74f, v=5, name="LVT"}, + {a=0xd750, b=0xd750, v=4, name="LV"}, + {a=0xd751, b=0xd76b, v=5, name="LVT"}, + {a=0xd76c, b=0xd76c, v=4, name="LV"}, + {a=0xd76d, b=0xd787, v=5, name="LVT"}, + {a=0xd788, b=0xd788, v=4, name="LV"}, + {a=0xd789, b=0xd7a3, v=5, name="LVT"}, + {a=0xd7a4, b=0xd7af, v=0, name="NA"}, + {a=0xd7b0, b=0xd7c6, v=2, name="V"}, + {a=0xd7c7, b=0xd7ca, v=0, name="NA"}, + {a=0xd7cb, b=0xd7fb, v=3, name="T"}, + {a=0xd7fc, b=0x10ffff, v=0, name="NA"}, +] + +[enum_property.code_point_trie] +index = [ + 0,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0xda,0xe3,0xef,0x108,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0,0x10,0x20,0x30, + 0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30, + 0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x80,0x80,0x80, + 0x80,0x80,0x90,0x90,0x90,0x90,0x98,0xa0,0xa0,0xa0,0xa0,0xa0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0x80,0xb0,0,0,0,0,0,0,0,0,0xc0,0xc4,0xd1,0xc8, + 0xd1,0xcc,0xd1,0xc0,0xc4,0xd1,0xc8,0xd1,0xcc,0xd1,0xc0,0xc4,0xd1,0xc8,0xd1,0xcc, + 0xd1,0xc0,0xc4,0xd1,0xc8,0xd1,0xcc,0xd1,0xc0,0xc4,0xd1,0xc8,0xd1,0xcc,0xd1,0xc0, + 0xc4,0xd1,0xc8,0xd1,0xdd,0x90,0xed,0xa0,0xa0,0xf8,0x44,0x4c,0x4c,0x4c,0x4c,0x4c, + 0x4c,0x4c,0x6c,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,0x8c,2,0xac,0xb0,0xad,0xb1,0xae,0xb2,0xaf,0xac,0xb0,0xad,0xb1, + 0xae,0xb2,0xaf,0xba +] +data_8 = [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, + 4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, + 2,2,2,2,0,0,0,0,3,3,3,3,3,3,3,3, + 3,3,3,3,0,0,0,0 +] +indexLength = 276 +dataLength = 264 +highStart = 0xd800 +shifted12HighStart = 0xe +type = 1 +valueWidth = 2 +index3NullOffset = 0x2 +dataNullOffset = 0x0 +nullValue = 0x0 diff --git a/provider/datagen/tests/data/json/propnames/from/hst@1/und.json b/provider/datagen/tests/data/json/propnames/from/hst@1/und.json new file mode 100644 index 00000000000..6d55a2eedc6 --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/from/hst@1/und.json @@ -0,0 +1,16 @@ +{ + "map": { + "L": 1, + "Leading_Jamo": 1, + "LV": 4, + "LV_Syllable": 4, + "LVT": 5, + "LVT_Syllable": 5, + "NA": 0, + "Not_Applicable": 0, + "T": 3, + "Trailing_Jamo": 3, + "V": 2, + "Vowel_Jamo": 2 + } +} diff --git a/provider/datagen/tests/data/json/propnames/to/long/linear/hst@1/und.json b/provider/datagen/tests/data/json/propnames/to/long/linear/hst@1/und.json new file mode 100644 index 00000000000..8a08878755c --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/to/long/linear/hst@1/und.json @@ -0,0 +1,10 @@ +{ + "map": [ + "Not_Applicable", + "Leading_Jamo", + "Vowel_Jamo", + "Trailing_Jamo", + "LV_Syllable", + "LVT_Syllable" + ] +} diff --git a/provider/datagen/tests/data/json/propnames/to/short/linear/hst@1/und.json b/provider/datagen/tests/data/json/propnames/to/short/linear/hst@1/und.json new file mode 100644 index 00000000000..40609fc0a52 --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/to/short/linear/hst@1/und.json @@ -0,0 +1,10 @@ +{ + "map": [ + "NA", + "L", + "V", + "T", + "LV", + "LVT" + ] +} diff --git a/provider/datagen/tests/data/json/props/hst@1/und.json b/provider/datagen/tests/data/json/props/hst@1/und.json new file mode 100644 index 00000000000..4ddf556dd3a --- /dev/null +++ b/provider/datagen/tests/data/json/props/hst@1/und.json @@ -0,0 +1,556 @@ +{ + "CodePointTrie": { + "header": { + "high_start": 55296, + "shifted12_high_start": 14, + "index3_null_offset": 2, + "data_null_offset": 0, + "null_value": 0, + "trie_type": "Small" + }, + "index": [ + 0, + 64, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 218, + 227, + 239, + 264, + 0, + 16, + 32, + 48, + 64, + 80, + 96, + 112, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 16, + 32, + 48, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128, + 128, + 128, + 128, + 128, + 128, + 144, + 144, + 144, + 144, + 152, + 160, + 160, + 160, + 160, + 160, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128, + 176, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 192, + 196, + 209, + 200, + 209, + 204, + 209, + 192, + 196, + 209, + 200, + 209, + 204, + 209, + 192, + 196, + 209, + 200, + 209, + 204, + 209, + 192, + 196, + 209, + 200, + 209, + 204, + 209, + 192, + 196, + 209, + 200, + 209, + 204, + 209, + 192, + 196, + 209, + 200, + 209, + 221, + 144, + 237, + 160, + 160, + 248, + 68, + 76, + 76, + 76, + 76, + 76, + 76, + 76, + 108, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 140, + 2, + 172, + 176, + 173, + 177, + 174, + 178, + 175, + 172, + 176, + 173, + 177, + 174, + 178, + 175, + 186 + ], + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0 + ] + } +} diff --git a/provider/datagen/tests/data/postcard/fingerprints.csv b/provider/datagen/tests/data/postcard/fingerprints.csv index 0ef753dd141..70feee970b7 100644 --- a/provider/datagen/tests/data/postcard/fingerprints.csv +++ b/provider/datagen/tests/data/postcard/fingerprints.csv @@ -8682,6 +8682,7 @@ propnames/from/ccc@1, und, 783B, 38e394b20d58c1df propnames/from/ea@1, und, 105B, 4bc69f982fa6b2de propnames/from/gc@1, und, 747B, 2f7ece7581036df2 propnames/from/gcm@1, und, 907B, 43b812154d2d3914 +propnames/from/hst@1, und, 136B, bdcb96569690b32c propnames/from/jt@1, und, 131B, b45c742d4b17ceb propnames/from/lb@1, und, 963B, bb6e2daf75e2057f propnames/from/sc@1, und, 3640B, d1ed7fca398b05b8 @@ -8692,6 +8693,7 @@ propnames/to/long/linear/WB@1, und, 245B, 7d725adfd056f4a4 propnames/to/long/linear/bc@1, und, 460B, 98758a587d562ad1 propnames/to/long/linear/ea@1, und, 61B, b4df37d762a5c879 propnames/to/long/linear/gc@1, und, 488B, 4786f3c0d2d639d +propnames/to/long/linear/hst@1, und, 89B, e8f111da1618e61d propnames/to/long/linear/jt@1, und, 88B, d9b49c75470a1afa propnames/to/long/linear/lb@1, und, 598B, 6ee04a546e351ffb propnames/to/long/linear/sc@1, und, 1964B, 9b97b7f85684632c @@ -8703,6 +8705,7 @@ propnames/to/short/linear/WB@1, und, 111B, 625b4965d4282611 propnames/to/short/linear/bc@1, und, 103B, 85ea5db229b1eaba propnames/to/short/linear/ea@1, und, 24B, 9dcf5f0ed5697f5b propnames/to/short/linear/gc@1, und, 125B, a6da6a4499b7361b +propnames/to/short/linear/hst@1, und, 27B, 6ce2e73552656f98 propnames/to/short/linear/jt@1, und, 23B, 4f7c0d697e2b792f propnames/to/short/linear/lb@1, und, 199B, 808bb5403b659e4 propnames/to/short/linear4/sc@1, und, 806B, d488da3356b27392 @@ -8867,6 +8870,7 @@ props/exemplarchars/punctuation@1, tr, 123B, 2e7906785ab47589 props/exemplarchars/punctuation@1, und, 59B, 42e553f11527bac0 props/gc@1, und, 17012B, 1d6406352436488b props/graph@1, und, 5707B, 2fd03ad84767b721 +props/hst@1, und, 829B, 67c6d3aaab48ff19 props/jt@1, und, 6915B, 877aaf1128f9f651 props/lb@1, und, 14856B, 9add7e1b9033c67d props/nfcinert@1, und, 7211B, f1234f4fe31e6a0d diff --git a/tools/testdata-scripts/globs.rs.data b/tools/testdata-scripts/globs.rs.data index 1da50d0ba91..be8d1d35fb6 100644 --- a/tools/testdata-scripts/globs.rs.data +++ b/tools/testdata-scripts/globs.rs.data @@ -133,6 +133,7 @@ const ICUEXPORTDATA_GLOB: &[&str] = &[ "uprops/small/Gr_Link.toml", "uprops/small/graph.toml", "uprops/small/Hex.toml", + "uprops/small/hst.toml", "uprops/small/Hyphen.toml", "uprops/small/IDC.toml", "uprops/small/Ideo.toml",