// @generated # [doc = " Implement `DataProvider` on the given struct using the data\n hardcoded in this file. This allows the struct to be used with\n `icu`'s `_unstable` constructors.\n\n Using this implementation will embed the following data in the binary's data segment:\n * 749B for the lookup data structure (141 data identifiers)\n * 36B[^1] for the actual data (9 unique structs)\n \n [^1]: these numbers can be smaller in practice due to linker deduplication\n\n This macro requires the following crates:\n * `icu`\n * `icu_provider`\n * `icu_provider/baked`\n"] # [doc (hidden)] # [macro_export] macro_rules ! __impl_collation_metadata_v1 { ($ provider : ty) => { # [clippy :: msrv = "1.86"] const _ : () = < $ provider > :: MUST_USE_MAKE_PROVIDER_MACRO ; # [clippy :: msrv = "1.86"] impl $ provider { const DATA_COLLATION_METADATA_V1 : icu_provider :: baked :: zerotrie :: Data < icu :: collator :: provider :: CollationMetadataV1 > = { const TRIE : icu_provider :: baked :: zerotrie :: ZeroTrieSimpleAscii < & 'static [u8] > = icu_provider :: baked :: zerotrie :: ZeroTrieSimpleAscii { store : b"\xE1wabcdefghijklmnoprstuvwy\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x1FKc\x86\xA4\xD9\xE7\x07\x15\x1F`z\x8C\x9E\xA4\xAD\xB3\x07$x\x80\x82\xC5fmrsz\x01\x02\x0B\x0C\x80\x81\x82\x1Ecompat\x82\x82\x82\x1Esearch\x80\xC7eglnors\x01\x02\x04\x0B\x0C\r\x82\x81o\x80\x82\x1Etrad\x82\x82\x80\x82\xC2\x1E-\x07search\x80Cyrl\x82\xC5aehsy\x08\n\x0C\r\x1Esearch\x80b\x80r\x81\x80\x80\xC3aes\t\x1B\x83\x1Esearch\x80\x1E\xC2ps\x07honebk\x80earch\x80b\x80\xC5elost\x01\x02\x03\x13\x84\x81\x80\x80\x1E\xC2st\x06earch\x80rad\x80\x80\xC6afiory\x01\x07\x1B$(\x82-Adlm\x80\x80\xC2\x1El\x0E\xC2st\x06earch\x80rad\x80\x80\x80\x1Esearch\x80-CA\x85\x80\xC2lu\t\x80\x1Esearch\x80\x82\xC7aeirsuy\x03\x04\x05\x0E\x10\x11\x80w\x80\x81\x82\x82\x1Esearch\x80b\x80\x80\x82\xC2gs\x01\x80\x80\x1Esearch\x80a\x82\x1Eunihan\x82\xC8aklmnouy\x01\x08\x11\x12\x19/0\x81\x82-Arab\x82\x80\x1Esearch\x80\x82\x82\x1Etrad\x82\x82\xC2\x1Ek\x10\xC2su\x06earch\x80nihan\x82\x82\x82\x82\xC5knotv\x02\r\x0E\x0Ft\x80\x80\x1Ephonetic\x80\x81\x86\x80\xC6klnrty\x01\x02\x03\x04\x05\x82\x82\x81\x82\x83\x82\xC3eos\x01\n\x81\x80\x1Esearch\x80o\x80\xC2mr\x01\x80\x82\xC3als\x01\x02\x82\x80\x82\xC2ou\x01\x80\x81\xC8eiklmqrv\t\x10\x19\x1A$%4\x80\x1Esearch\x80\x82\x1Edict\x82\x80\x1Esearch\x80\x80n\x80\x1Esearch\x80\x80\x82-Latn\x82\x1Esearch\x80\x80\x1E\xC2st\x06earch\x80rad\x80\xC7aehknor\x01\x02\x03\x04\x05\x06\x82\x82\x87\x80\x80\x80\x80\x1Esearch\x80\xC5gknrz\x01\x02HI\x82\x82d\x88\xC2\x1E-\x14\xC2es\n\xC2mo\x04oji\x88r\x88earch\x88Han\xC3ist!\"\x1E\xC4psuz\x06\x0C\x12inyin\x82troke\x82nihan\x82huyin\x82\x82\x82\x82\x80i\x84\x1Etrad\x84o\x80\xC2io\x01\x82\x80" , } ; const VALUES : & 'static [< icu :: collator :: provider :: CollationMetadataV1 as icu_provider :: baked :: zerotrie :: DynamicDataMarker > :: DataStruct] = & [icu :: collator :: provider :: CollationMetadata { bits : 9u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 33u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 41u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 1545u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 25u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 129u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 73u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 297u32 , } , icu :: collator :: provider :: CollationMetadata { bits : 1u32 , } ,] ; unsafe { icu_provider :: baked :: zerotrie :: Data :: from_trie_and_values_unchecked (TRIE , VALUES) } } ; } # [clippy :: msrv = "1.86"] impl icu_provider :: DataProvider < icu :: collator :: provider :: CollationMetadataV1 > for $ provider { fn load (& self , req : icu_provider :: DataRequest ,) -> Result < icu_provider :: DataResponse < icu :: collator :: provider :: CollationMetadataV1 > , icu_provider :: DataError > { let mut metadata = icu_provider :: DataResponseMetadata :: default () ; let payload = if let Some (payload) = icu_provider :: baked :: DataStore :: get (& Self :: DATA_COLLATION_METADATA_V1 , req . id , req . metadata . attributes_prefix_match) { payload } else { const FALLBACKER : icu :: locale :: fallback :: LocaleFallbackerWithConfig < 'static > = icu :: locale :: fallback :: LocaleFallbacker :: new () . for_config (< icu :: collator :: provider :: CollationMetadataV1 as icu_provider :: DataMarker > :: INFO . fallback_config) ; let mut fallback_iterator = FALLBACKER . fallback_for (req . id . locale . clone ()) ; loop { if let Some (payload) = icu_provider :: baked :: DataStore :: get (& Self :: DATA_COLLATION_METADATA_V1 , icu_provider :: DataIdentifierBorrowed :: for_marker_attributes_and_locale (req . id . marker_attributes , fallback_iterator . get ()) , req . metadata . attributes_prefix_match) { metadata . locale = Some (fallback_iterator . take ()) ; break payload ; } if fallback_iterator . get () . is_unknown () { return Err (icu_provider :: DataErrorKind :: IdentifierNotFound . with_req (< icu :: collator :: provider :: CollationMetadataV1 as icu_provider :: DataMarker > :: INFO , req)) ; } fallback_iterator . step () ; } } ; Ok (icu_provider :: DataResponse { payload , metadata }) } } } ; ($ provider : ty , ITER) => { __impl_collation_metadata_v1 ! ($ provider) ; # [clippy :: msrv = "1.86"] impl icu_provider :: IterableDataProvider < icu :: collator :: provider :: CollationMetadataV1 > for $ provider { fn iter_ids (& self) -> Result < std :: collections :: BTreeSet < icu_provider :: DataIdentifierCow < 'static >> , icu_provider :: DataError > { Ok (icu_provider :: baked :: DataStore :: iter (& Self :: DATA_COLLATION_METADATA_V1) . collect ()) } } } ; ($ provider : ty , DRY) => { } ; ($ provider : ty , DRY , ITER) => { __impl_collation_metadata_v1 ! ($ provider , ITER) ; } ; } # [doc (inline)] pub use __impl_collation_metadata_v1 as impl_collation_metadata_v1 ;