diff options
Diffstat (limited to 'vendor/icu_locid')
-rw-r--r-- | vendor/icu_locid/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/icu_locid/Cargo.lock | 307 | ||||
-rw-r--r-- | vendor/icu_locid/Cargo.toml | 9 | ||||
-rw-r--r-- | vendor/icu_locid/examples/filter_langids.rs | 2 | ||||
-rw-r--r-- | vendor/icu_locid/examples/syntatically_canonicalize_locales.rs | 2 | ||||
-rw-r--r-- | vendor/icu_locid/src/databake.rs | 23 | ||||
-rw-r--r-- | vendor/icu_locid/src/extensions/mod.rs | 2 | ||||
-rw-r--r-- | vendor/icu_locid/src/extensions/unicode/keywords.rs | 14 | ||||
-rw-r--r-- | vendor/icu_locid/src/extensions/unicode/value.rs | 12 | ||||
-rw-r--r-- | vendor/icu_locid/src/helpers.rs | 131 | ||||
-rw-r--r-- | vendor/icu_locid/src/langid.rs | 2 | ||||
-rw-r--r-- | vendor/icu_locid/src/lib.rs | 8 | ||||
-rw-r--r-- | vendor/icu_locid/src/locale.rs | 27 | ||||
-rw-r--r-- | vendor/icu_locid/src/ordering.rs | 1 | ||||
-rw-r--r-- | vendor/icu_locid/src/parser/errors.rs | 2 | ||||
-rw-r--r-- | vendor/icu_locid/src/subtags/variants.rs | 10 | ||||
-rw-r--r-- | vendor/icu_locid/tests/langid.rs | 4 | ||||
-rw-r--r-- | vendor/icu_locid/tests/locale.rs | 6 |
18 files changed, 292 insertions, 272 deletions
diff --git a/vendor/icu_locid/.cargo-checksum.json b/vendor/icu_locid/.cargo-checksum.json index 1ea6414e8..86c76b889 100644 --- a/vendor/icu_locid/.cargo-checksum.json +++ b/vendor/icu_locid/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.lock":"332fcd0f371d9ef54006d7525bfc6a8adae7433754a3fbc0328530f421d92d0d","Cargo.toml":"c60a23e3795ec4820118fc5dec6ffb9bdca684d95511de01ea5a04d6d8272bc8","LICENSE":"4ad7541d66a407234e2c84902124cef325c29f3e966353efdb800bedb8b8da21","README.md":"16472983782c836d9e97b4df4754baab7bb247d0a945d1a97cafb3210e951d8f","benches/fixtures/langid.json":"373c11527653c63c685c9e229a8de5ae2b557c25b686a9d891c59e1f603232d8","benches/fixtures/locale.json":"669b19db933094290a45bf856559920f4e92401072e364ac82c482119dc9233a","benches/fixtures/mod.rs":"9a9671eddcf38a6faa10cb814949f8abc15d89f5e70f3ad6f684f1bc3ffe72ea","benches/fixtures/subtags.json":"28be3a639e452d713e807d5779b6819e06277e2dbbf67801ef34964fb9b074b6","benches/helpers/macros.rs":"bba0945a826bc083156bc302507c48c0c99c4d965e2a84352644d768591b0339","benches/helpers/mod.rs":"c98167d866fdb7f66c8cab41e8d57b5aab9e9707dfc66c37ef136e088dac6fef","benches/iai_langid.rs":"7984d12b78a0e2ecfa1eac74ccf7310627285de821c13fab2fe000f0e961a136","benches/langid.rs":"4e3d307d48fd9071308a567a0ef927b229814978abd2ba29f57c65edd51f38e4","benches/locale.rs":"b8d5b1e3f8b5578c549a5149229656fb60de26b76a1bf66b6c1abce75042d674","benches/subtags.rs":"e7e80dabaf31bf031779456614f139cafcdadb805986e71b49133ac964928432","examples/filter_langids.rs":"f36f6732b08a954d41ea95dfb3f07963f7c120e80ed29f4de7c9ec562c0151d6","examples/syntatically_canonicalize_locales.rs":"de97579c82f1670629d077a6216ecce06761da28715387f46250f81b8172ae6b","src/extensions/mod.rs":"106af2b8186202aa8c654acc085619d99fdbdbc467c276ead8283b9938c75ba7","src/extensions/other/mod.rs":"ee377c2eeaa6b622a2c80807bffdd307800030fe2ec8a99a9729bdde45452635","src/extensions/other/subtag.rs":"431d27a0a5adca7d56c7ea3a6de2a0412e1e14ad2dd8a8e09a548849984b84b6","src/extensions/private/mod.rs":"5d53d32adb79386416b6eb4a9de218423f3bee4000e96e4899b78462f609531c","src/extensions/private/other.rs":"586fd24398e78c5fda0afdb98de28a6467afd2d702683daf5dfab2a6c45af1e9","src/extensions/transform/fields.rs":"9221478ce7565738bb27951a6be25b3ebc5c11d63afb2ca744fd4c587d155e9b","src/extensions/transform/key.rs":"53e8c9ce13f00f678c2322855cc1d90afd91cd33a2af3758d098b7bbcc7090e5","src/extensions/transform/mod.rs":"111ebf59ad6cd9a09a8eb84367a0053ff03fff8329f07310131784a457d07b61","src/extensions/transform/value.rs":"577b642b32f7a74e98ba5bee8e30700021c8b0e6da63538398aaf95d13edfd65","src/extensions/unicode/attribute.rs":"d558a193b72f54cdb03afe8e023a145ac74832c8416ca55401cd417ebba2431c","src/extensions/unicode/attributes.rs":"ddc0361968151e28cc1e6a3d91056a0f71f2c42f22dacecd339aaa67dfdcf899","src/extensions/unicode/key.rs":"6c8694527079c5dd5f03f8e85f23ae6b5aa4b47899d1047036960e8400dca7de","src/extensions/unicode/keywords.rs":"d98b0799c171557c9d042bcc06389ac9742ae0a4910d9ceb1612d1ac5045222c","src/extensions/unicode/mod.rs":"e066cbdabf567a40c777428d071e2e82389a043bd552bc1e83202401c86e0b2e","src/extensions/unicode/value.rs":"38b96501db9ebc3da583162d68279de30096b896209874ff052dcc10f874d98a","src/helpers.rs":"54272463a938a04fd2cf5a663128ea08f36744180f0eb49fa2ad7de105c0c19a","src/langid.rs":"77dce95dd5549c15cbfa9f34f3521f7ad1d1c1b16c3d972f28023f59283bd56f","src/lib.rs":"661efd6459894a1821861a8b7e0a7e73484c49f5d297810aed401f7a66c45985","src/locale.rs":"98c5389226e3dd2ae9378225c129d0eb264d5b1d712111f2587489d01feeb546","src/macros.rs":"f7154fc103ea1120a55bb5898540b20df80de6eec42e70ce15f339d997f2bf52","src/ordering.rs":"c70aa4e33d5cbab8d75d2833641141b71984a93648634cfc57fc25c3f79a5f58","src/parser/errors.rs":"44a25385a2dc7d537b3ce482fc02169eda1e5e727ee99b00f0fd85cb501ee939","src/parser/langid.rs":"749ac36945e7b5e24cbc82f04900f10f770fc24f7ce007af4c3be7a325ccc631","src/parser/locale.rs":"075c74803891894ad50bbedc69366931b8e76c0992b3caa1a5632f0a6816ccfd","src/parser/mod.rs":"5182392624876a419b1469d135d175aba680bb13d14e4f6ea0cfc4e071fbc743","src/serde.rs":"06e940e4f2d15f02d313b4e2b233aea3e74c93c6c43076f5ffe52d49c133608f","src/subtags/language.rs":"2ebc98952bd4a6b4077c77da1895225faacc17020af8a47675b8b41b05b9e7eb","src/subtags/mod.rs":"0257f746ed368ea3fa675054c9e7e40d972ec31cd7cc525be655a16a83c9d17b","src/subtags/region.rs":"4f4120f4910d0a4496f29c193d00313e71be4c646867d97ebd0e9a7438693847","src/subtags/script.rs":"6b1a68783cb90409bdd39b0184dfb2cb1c302fdee7202e3b6f7c7c8941bc7dfe","src/subtags/variant.rs":"956f1ea3d98172b6ead333411f010cf4e84404584a3051cb775d148d79beb4f8","src/subtags/variants.rs":"511aca7f5b75509b6b1b095e3465ab096430cc97b38e0bcb5956e71fa01c3189","src/zerovec.rs":"9d01a235d18296fbf0c2e89d188459e9446df0e63aaedc7e150165604af885b9","tests/fixtures/canonicalize.json":"9f2b7cbef72c24944cd4dc50de368c6e3ef69949f29c9ce1aa8807de767a4d0a","tests/fixtures/invalid-extensions.json":"4b7888006360b216030597257de8c301e22877e75216818967bbd8c83b6dbb0b","tests/fixtures/invalid.json":"5247849a6eb805619b8e70254c855227f7bdaf71431b071c91c6cc378ae9766e","tests/fixtures/langid.json":"960fd01722217ef1ea9077e2e0821d7089fe318a241bd7fb7918f50bf8f3f5c3","tests/fixtures/locale.json":"8606e0569fc6ea0e50a1fecb9295b911fbef7d8dbfde3c585476284a751baccf","tests/fixtures/mod.rs":"aea619960540b92199345cbd20ff03d2cb451aa2ce9aa6cf7915223ee9f812a3","tests/helpers/mod.rs":"d3bf59e7eed6230f340bef6c87a7b8de3a387ec391f60afc1b15a0d001cbfb67","tests/langid.rs":"43a0d381bdd9a8567898c137337a1563bea6db6fb36ecb853f496366faf8ff79","tests/locale.rs":"0cd3f09e83f6c093bca9676845612343a1e179d8584735e069008248e126eccf"},"package":"71d7a98ecb812760b5f077e55a4763edeefa7ccc30d6eb5680a70841ede81928"}
\ No newline at end of file +{"files":{"Cargo.lock":"1aa9f21333d579ccbdf71478538b586518faa9d7f73f7ba8049649f5d4e33b43","Cargo.toml":"d4d6c83d31deeb379ed08f9340dd71e9726ecaa8e89e55b01254fed5acdee859","LICENSE":"4ad7541d66a407234e2c84902124cef325c29f3e966353efdb800bedb8b8da21","README.md":"16472983782c836d9e97b4df4754baab7bb247d0a945d1a97cafb3210e951d8f","benches/fixtures/langid.json":"373c11527653c63c685c9e229a8de5ae2b557c25b686a9d891c59e1f603232d8","benches/fixtures/locale.json":"669b19db933094290a45bf856559920f4e92401072e364ac82c482119dc9233a","benches/fixtures/mod.rs":"9a9671eddcf38a6faa10cb814949f8abc15d89f5e70f3ad6f684f1bc3ffe72ea","benches/fixtures/subtags.json":"28be3a639e452d713e807d5779b6819e06277e2dbbf67801ef34964fb9b074b6","benches/helpers/macros.rs":"bba0945a826bc083156bc302507c48c0c99c4d965e2a84352644d768591b0339","benches/helpers/mod.rs":"c98167d866fdb7f66c8cab41e8d57b5aab9e9707dfc66c37ef136e088dac6fef","benches/iai_langid.rs":"7984d12b78a0e2ecfa1eac74ccf7310627285de821c13fab2fe000f0e961a136","benches/langid.rs":"4e3d307d48fd9071308a567a0ef927b229814978abd2ba29f57c65edd51f38e4","benches/locale.rs":"b8d5b1e3f8b5578c549a5149229656fb60de26b76a1bf66b6c1abce75042d674","benches/subtags.rs":"e7e80dabaf31bf031779456614f139cafcdadb805986e71b49133ac964928432","examples/filter_langids.rs":"e000b860432b1646c74709177e4e4df1cfdc9620f41a677d15a5016bd7eb9b29","examples/syntatically_canonicalize_locales.rs":"49184e6e52e2264c61a479c0df88c01e7f7079f3da991445faecca3844594079","src/databake.rs":"894d0f73836d99915c5726d8984e7833498e841e2985cedfd5893aeb2bdcc958","src/extensions/mod.rs":"684cb51f3edc0385f6f7703e81a83c3455bd035d0016bd8e9024b26546037cd1","src/extensions/other/mod.rs":"ee377c2eeaa6b622a2c80807bffdd307800030fe2ec8a99a9729bdde45452635","src/extensions/other/subtag.rs":"431d27a0a5adca7d56c7ea3a6de2a0412e1e14ad2dd8a8e09a548849984b84b6","src/extensions/private/mod.rs":"5d53d32adb79386416b6eb4a9de218423f3bee4000e96e4899b78462f609531c","src/extensions/private/other.rs":"586fd24398e78c5fda0afdb98de28a6467afd2d702683daf5dfab2a6c45af1e9","src/extensions/transform/fields.rs":"9221478ce7565738bb27951a6be25b3ebc5c11d63afb2ca744fd4c587d155e9b","src/extensions/transform/key.rs":"53e8c9ce13f00f678c2322855cc1d90afd91cd33a2af3758d098b7bbcc7090e5","src/extensions/transform/mod.rs":"111ebf59ad6cd9a09a8eb84367a0053ff03fff8329f07310131784a457d07b61","src/extensions/transform/value.rs":"577b642b32f7a74e98ba5bee8e30700021c8b0e6da63538398aaf95d13edfd65","src/extensions/unicode/attribute.rs":"d558a193b72f54cdb03afe8e023a145ac74832c8416ca55401cd417ebba2431c","src/extensions/unicode/attributes.rs":"ddc0361968151e28cc1e6a3d91056a0f71f2c42f22dacecd339aaa67dfdcf899","src/extensions/unicode/key.rs":"6c8694527079c5dd5f03f8e85f23ae6b5aa4b47899d1047036960e8400dca7de","src/extensions/unicode/keywords.rs":"782ce7de79b4151b072ea263d1c614e0a14e162043345eead6691d18b9de2092","src/extensions/unicode/mod.rs":"e066cbdabf567a40c777428d071e2e82389a043bd552bc1e83202401c86e0b2e","src/extensions/unicode/value.rs":"786ac19494618a3d45e6c0d0f85311c57812ba0e7a286a2ea903c3d358811e47","src/helpers.rs":"aae44d20013596d872d99e9db811f0dede093cc2d33d52104e11f45897185490","src/langid.rs":"314ef5d6764e35d5a30bd53e43a8d547c81fe7ee875fe52e54076215a89a64f1","src/lib.rs":"ba7bec8f041418942ccc36693d26c733d18d5d30dc06355c86870ca52b1b4a33","src/locale.rs":"bb59685345580711b9b1510a99db64f14080fbc176a461d2a6322ffda1bdb96c","src/macros.rs":"f7154fc103ea1120a55bb5898540b20df80de6eec42e70ce15f339d997f2bf52","src/ordering.rs":"d76c6f26ffb5eb1e24646b70ce532985af326c46c488abda52c89074387f1dcc","src/parser/errors.rs":"8af937e67d197272c0f4806cc40cb191c878085b8687f987e358ee01ac2b5004","src/parser/langid.rs":"749ac36945e7b5e24cbc82f04900f10f770fc24f7ce007af4c3be7a325ccc631","src/parser/locale.rs":"075c74803891894ad50bbedc69366931b8e76c0992b3caa1a5632f0a6816ccfd","src/parser/mod.rs":"5182392624876a419b1469d135d175aba680bb13d14e4f6ea0cfc4e071fbc743","src/serde.rs":"06e940e4f2d15f02d313b4e2b233aea3e74c93c6c43076f5ffe52d49c133608f","src/subtags/language.rs":"2ebc98952bd4a6b4077c77da1895225faacc17020af8a47675b8b41b05b9e7eb","src/subtags/mod.rs":"0257f746ed368ea3fa675054c9e7e40d972ec31cd7cc525be655a16a83c9d17b","src/subtags/region.rs":"4f4120f4910d0a4496f29c193d00313e71be4c646867d97ebd0e9a7438693847","src/subtags/script.rs":"6b1a68783cb90409bdd39b0184dfb2cb1c302fdee7202e3b6f7c7c8941bc7dfe","src/subtags/variant.rs":"956f1ea3d98172b6ead333411f010cf4e84404584a3051cb775d148d79beb4f8","src/subtags/variants.rs":"d312ec8994f25d0c0285f71f4bcdff5a06bdcfa45da3e3db31478d6f0293c741","src/zerovec.rs":"9d01a235d18296fbf0c2e89d188459e9446df0e63aaedc7e150165604af885b9","tests/fixtures/canonicalize.json":"9f2b7cbef72c24944cd4dc50de368c6e3ef69949f29c9ce1aa8807de767a4d0a","tests/fixtures/invalid-extensions.json":"4b7888006360b216030597257de8c301e22877e75216818967bbd8c83b6dbb0b","tests/fixtures/invalid.json":"5247849a6eb805619b8e70254c855227f7bdaf71431b071c91c6cc378ae9766e","tests/fixtures/langid.json":"960fd01722217ef1ea9077e2e0821d7089fe318a241bd7fb7918f50bf8f3f5c3","tests/fixtures/locale.json":"8606e0569fc6ea0e50a1fecb9295b911fbef7d8dbfde3c585476284a751baccf","tests/fixtures/mod.rs":"aea619960540b92199345cbd20ff03d2cb451aa2ce9aa6cf7915223ee9f812a3","tests/helpers/mod.rs":"d3bf59e7eed6230f340bef6c87a7b8de3a387ec391f60afc1b15a0d001cbfb67","tests/langid.rs":"82da0497c4b7d7c5d416ddb96bad0d13d4e51b735b5ed3164a25861de28e2118","tests/locale.rs":"bfbb137e6183e71e6e05076fd3b1caea98a70e69992c8626bb8f316eebc3a23c"},"package":"3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335"}
\ No newline at end of file diff --git a/vendor/icu_locid/Cargo.lock b/vendor/icu_locid/Cargo.lock index 401f5d44d..559ba454b 100644 --- a/vendor/icu_locid/Cargo.lock +++ b/vendor/icu_locid/Cargo.lock @@ -3,6 +3,12 @@ version = 3 [[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -26,18 +32,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "lazy_static", - "memchr", - "regex-automata", - "serde", -] - -[[package]] name = "bumpalo" version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -56,14 +50,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] +name = "ciborium" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" + +[[package]] +name = "ciborium-ll" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] name = "clap" -version = "2.34.0" +version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "bitflags", + "clap_lex", + "indexmap", "textwrap", - "unicode-width", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", ] [[package]] @@ -74,15 +105,16 @@ checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" [[package]] name = "criterion" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" +checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" dependencies = [ + "anes", "atty", "cast", + "ciborium", "clap", "criterion-plot", - "csv", "itertools", "lazy_static", "num-traits", @@ -91,7 +123,6 @@ dependencies = [ "rayon", "regex", "serde", - "serde_cbor", "serde_derive", "serde_json", "tinytemplate", @@ -100,9 +131,9 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", "itertools", @@ -110,9 +141,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -120,9 +151,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -131,9 +162,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", @@ -144,40 +175,18 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] [[package]] -name = "csv" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" -dependencies = [ - "bstr", - "csv-core", - "itoa 0.4.8", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - -[[package]] name = "databake" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df626c4717e455cd7a70a82c4358630554a07e4341f86dd095c625f1474a2857" +checksum = "3feab871d671ecc2e912e83e3a64b9b3343a224c86b999334c4c99b07cf07f52" dependencies = [ "databake-derive", "proc-macro2", @@ -187,9 +196,9 @@ dependencies = [ [[package]] name = "databake-derive" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be51a53c468489ae1ef0efa9f6b10706f426c0dde06d66122ffef1f0c51e87dc" +checksum = "d8b3072996668063c5fe00fcef85ee766fc01113f2fdd5e8a31d5ebae260c091" dependencies = [ "proc-macro2", "quote", @@ -210,9 +219,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "half" @@ -221,6 +230,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] name = "hermit-abi" version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -246,7 +261,7 @@ checksum = "71a816c97c42258aa5834d07590b718b4c9a598944cd39a52dc25b351185d678" [[package]] name = "icu_locid" -version = "1.1.0" +version = "1.2.0" dependencies = [ "criterion", "databake", @@ -262,6 +277,16 @@ dependencies = [ ] [[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] name = "itertools" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -272,21 +297,15 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] @@ -299,15 +318,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" [[package]] name = "litemap" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575d8a551c59104b4df91269921e5eab561aa1b77c618dac0414b5d44a4617de" +checksum = "3a04a5b2b6f54acba899926491d0a6c59d98012938ca2ab5befb281c034e8f94" [[package]] name = "log" @@ -319,16 +338,10 @@ dependencies = [ ] [[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] name = "memoffset" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] @@ -354,9 +367,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "oorandom" @@ -365,6 +378,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] +name = "os_str_bytes" +version = "6.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + +[[package]] name = "plotters" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -394,9 +413,9 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2b180dc0bade59f03fd005cb967d3f1e5f69b13922dad0cd6e047cb8af2363" +checksum = "cfa512cd0d087cc9f99ad30a1bf64795b67871edbead083ffc3a4dfafa59aa00" dependencies = [ "cobs", "serde", @@ -404,27 +423,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -432,9 +451,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -444,30 +463,24 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "regex-syntax", ] [[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - -[[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "same-file" @@ -486,28 +499,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4" dependencies = [ "serde_derive", ] [[package]] -name = "serde_cbor" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" -dependencies = [ - "half", - "serde", -] - -[[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" dependencies = [ "proc-macro2", "quote", @@ -516,20 +519,20 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ - "itoa 1.0.5", + "itoa", "ryu", "serde", ] [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -550,12 +553,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.11.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "tinystr" @@ -579,15 +579,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-xid" @@ -597,20 +591,19 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -618,9 +611,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", @@ -633,9 +626,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -643,9 +636,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", @@ -656,15 +649,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", @@ -703,21 +696,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "writeable" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d74a687e3b9a7a129db0a8c82b4d464eb9c36f5a66ca68572a7e5f1cfdb5bc" +checksum = "60e49e42bdb1d5dc76f4cd78102f8f0714d32edfa3efb82286eb0f0b1fc0da0f" [[package]] name = "zerofrom" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e9355fccf72b04b7deaa99ce7a0f6630530acf34045391b74460fcd714de54" +checksum = "df54d76c3251de27615dfcce21e636c172dafb2549cd7fd93e21c66f6ca6bea2" [[package]] name = "zerovec" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "154df60c74c4a844bc04a53cef4fc18a909d3ea07e19f5225eaba86209da3aa6" +checksum = "198f54134cd865f437820aa3b43d0ad518af4e68ee161b444cdd15d8e567c8ea" dependencies = [ "zerofrom", ] diff --git a/vendor/icu_locid/Cargo.toml b/vendor/icu_locid/Cargo.toml index dbbe6ed2b..54c842a75 100644 --- a/vendor/icu_locid/Cargo.toml +++ b/vendor/icu_locid/Cargo.toml @@ -12,7 +12,7 @@ [package] edition = "2021" name = "icu_locid" -version = "1.1.0" +version = "1.2.0" authors = ["The ICU4X Project Developers"] include = [ "src/**/*", @@ -28,7 +28,6 @@ readme = "README.md" categories = ["internationalization"] license = "Unicode-DFS-2016" repository = "https://github.com/unicode-org/icu4x" -resolver = "2" [package.metadata.docs.rs] all-features = true @@ -76,7 +75,7 @@ version = "0.2.3" default-features = false [dependencies.litemap] -version = "0.6.1" +version = "0.7.0" [dependencies.serde] version = "1.0" @@ -96,11 +95,11 @@ default-features = false version = "0.5.1" [dependencies.zerovec] -version = "0.9.2" +version = "0.9.4" optional = true [dev-dependencies.criterion] -version = "0.3.3" +version = "0.4" [dev-dependencies.iai] version = "0.1.1" diff --git a/vendor/icu_locid/examples/filter_langids.rs b/vendor/icu_locid/examples/filter_langids.rs index 215df4eb3..67828a118 100644 --- a/vendor/icu_locid/examples/filter_langids.rs +++ b/vendor/icu_locid/examples/filter_langids.rs @@ -51,7 +51,7 @@ fn main(_argc: isize, _argv: *const *const u8) -> isize { let _output = filter_input(input); #[cfg(debug_assertions)] - println!("\nInput: {}\nOutput: {}", input, _output); + println!("\nInput: {input}\nOutput: {_output}"); 0 } diff --git a/vendor/icu_locid/examples/syntatically_canonicalize_locales.rs b/vendor/icu_locid/examples/syntatically_canonicalize_locales.rs index 659e8eff0..1f967504e 100644 --- a/vendor/icu_locid/examples/syntatically_canonicalize_locales.rs +++ b/vendor/icu_locid/examples/syntatically_canonicalize_locales.rs @@ -35,7 +35,7 @@ fn main() { let _output = syntatically_canonicalize_locales(input); #[cfg(debug_assertions)] - println!("\nInput: {}\nOutput: {}", input, _output); + println!("\nInput: {input}\nOutput: {_output}"); } #[cfg(test)] diff --git a/vendor/icu_locid/src/databake.rs b/vendor/icu_locid/src/databake.rs new file mode 100644 index 000000000..03b7357c5 --- /dev/null +++ b/vendor/icu_locid/src/databake.rs @@ -0,0 +1,23 @@ +// This file is part of ICU4X. For terms of use, please see the file +// called LICENSE at the top level of the ICU4X source tree +// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). + +use crate::LanguageIdentifier; +use alloc::string::ToString; +use databake::*; + +impl Bake for LanguageIdentifier { + fn bake(&self, env: &CrateEnv) -> TokenStream { + env.insert("icu_locid"); + let repr = self.to_string(); + if self.variants.len() <= 1 { + quote! { + icu_locid::langid!(#repr) + } + } else { + quote! { + icu_locid::LanguageIdentifier::from_str(#repr).unwrap() + } + } + } +} diff --git a/vendor/icu_locid/src/extensions/mod.rs b/vendor/icu_locid/src/extensions/mod.rs index a6a189b11..5f1ad2b1f 100644 --- a/vendor/icu_locid/src/extensions/mod.rs +++ b/vendor/icu_locid/src/extensions/mod.rs @@ -214,7 +214,7 @@ impl Extensions { if subtag.is_empty() { return Err(ParserError::InvalidExtension); } - match subtag.get(0).map(|b| ExtensionType::try_from_byte(*b)) { + match subtag.first().map(|b| ExtensionType::try_from_byte(*b)) { Some(Ok(ExtensionType::Unicode)) => { if unicode.is_some() { return Err(ParserError::DuplicatedExtension); diff --git a/vendor/icu_locid/src/extensions/unicode/keywords.rs b/vendor/icu_locid/src/extensions/unicode/keywords.rs index 580cacaf1..4e2fbae9a 100644 --- a/vendor/icu_locid/src/extensions/unicode/keywords.rs +++ b/vendor/icu_locid/src/extensions/unicode/keywords.rs @@ -9,7 +9,7 @@ use litemap::LiteMap; use super::Key; use super::Value; -use crate::helpers::ShortVec; +use crate::helpers::ShortSlice; use crate::ordering::SubtagOrderingResult; /// A list of [`Key`]-[`Value`] pairs representing functional information @@ -66,7 +66,7 @@ use crate::ordering::SubtagOrderingResult; /// /// [`Locale`]: crate::Locale #[derive(Clone, PartialEq, Eq, Debug, Default, Hash, PartialOrd, Ord)] -pub struct Keywords(LiteMap<Key, Value, ShortVec<(Key, Value)>>); +pub struct Keywords(LiteMap<Key, Value, ShortSlice<(Key, Value)>>); impl Keywords { /// Returns a new empty list of key-value pairs. Same as [`default()`](Default::default()), but is `const`. @@ -86,9 +86,9 @@ impl Keywords { /// Create a new list of key-value pairs having exactly one pair, callable in a `const` context. #[inline] pub const fn new_single(key: Key, value: Value) -> Self { - Self(LiteMap::from_sorted_store_unchecked(ShortVec::new_single( - (key, value), - ))) + Self(LiteMap::from_sorted_store_unchecked( + ShortSlice::new_single((key, value)), + )) } /// Returns `true` if there are no keywords. @@ -390,8 +390,8 @@ impl Keywords { } } -impl From<LiteMap<Key, Value, ShortVec<(Key, Value)>>> for Keywords { - fn from(map: LiteMap<Key, Value, ShortVec<(Key, Value)>>) -> Self { +impl From<LiteMap<Key, Value, ShortSlice<(Key, Value)>>> for Keywords { + fn from(map: LiteMap<Key, Value, ShortSlice<(Key, Value)>>) -> Self { Self(map) } } diff --git a/vendor/icu_locid/src/extensions/unicode/value.rs b/vendor/icu_locid/src/extensions/unicode/value.rs index e6374372c..f1b2402de 100644 --- a/vendor/icu_locid/src/extensions/unicode/value.rs +++ b/vendor/icu_locid/src/extensions/unicode/value.rs @@ -2,7 +2,7 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -use crate::helpers::ShortVec; +use crate::helpers::ShortSlice; use crate::parser::{ParserError, SubtagIterator}; use alloc::vec::Vec; use core::ops::RangeInclusive; @@ -35,7 +35,7 @@ use tinystr::TinyAsciiStr; /// assert_eq!(value!("true").to_string(), ""); /// ``` #[derive(Debug, PartialEq, Eq, Clone, Hash, PartialOrd, Ord, Default)] -pub struct Value(ShortVec<TinyAsciiStr<{ *VALUE_LENGTH.end() }>>); +pub struct Value(ShortSlice<TinyAsciiStr<{ *VALUE_LENGTH.end() }>>); const VALUE_LENGTH: RangeInclusive<usize> = 3..=8; const TRUE_VALUE: TinyAsciiStr<8> = tinystr::tinystr!(8, "true"); @@ -52,7 +52,7 @@ impl Value { /// Value::try_from_bytes(b"buddhist").expect("Parsing failed."); /// ``` pub fn try_from_bytes(input: &[u8]) -> Result<Self, ParserError> { - let mut v = ShortVec::new(); + let mut v = Vec::new(); if !input.is_empty() { for subtag in SubtagIterator::new(input) { @@ -62,7 +62,7 @@ impl Value { } } } - Ok(Self(v)) + Ok(Self(v.into())) } /// Const constructor for when the value contains only a single subtag. @@ -96,11 +96,11 @@ impl Value { #[doc(hidden)] pub const fn from_tinystr(subtag: Option<TinyAsciiStr<8>>) -> Self { match subtag { - None => Self(ShortVec::new()), + None => Self(ShortSlice::new()), Some(val) => { debug_assert!(val.is_ascii_alphanumeric()); debug_assert!(!matches!(val, TRUE_VALUE)); - Self(ShortVec::new_single(val)) + Self(ShortSlice::new_single(val)) } } } diff --git a/vendor/icu_locid/src/helpers.rs b/vendor/icu_locid/src/helpers.rs index e5889a7b0..42b2b7286 100644 --- a/vendor/icu_locid/src/helpers.rs +++ b/vendor/icu_locid/src/helpers.rs @@ -4,36 +4,40 @@ use core::iter::FromIterator; +use alloc::boxed::Box; use alloc::vec; use alloc::vec::Vec; use litemap::store::*; /// Internal: A vector that supports no-allocation, constant values if length 0 or 1. +/// Using ZeroOne(Option<T>) saves 8 bytes in ShortSlice via niche optimization. #[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub(crate) enum ShortVec<T> { - Empty, - Single(T), - Multi(Vec<T>), +pub(crate) enum ShortSlice<T> { + ZeroOne(Option<T>), + Multi(Box<[T]>), } -impl<T> ShortVec<T> { +impl<T> ShortSlice<T> { #[inline] pub const fn new() -> Self { - Self::Empty + Self::ZeroOne(None) } #[inline] pub const fn new_single(item: T) -> Self { - Self::Single(item) + Self::ZeroOne(Some(item)) } pub fn push(&mut self, item: T) { - *self = match core::mem::replace(self, Self::Empty) { - ShortVec::Empty => ShortVec::Single(item), - ShortVec::Single(prev_item) => ShortVec::Multi(vec![prev_item, item]), - ShortVec::Multi(mut items) => { + *self = match core::mem::replace(self, Self::ZeroOne(None)) { + ShortSlice::ZeroOne(None) => ShortSlice::ZeroOne(Some(item)), + ShortSlice::ZeroOne(Some(prev_item)) => { + ShortSlice::Multi(vec![prev_item, item].into_boxed_slice()) + } + ShortSlice::Multi(items) => { + let mut items = items.into_vec(); items.push(item); - ShortVec::Multi(items) + ShortSlice::Multi(items.into_boxed_slice()) } }; } @@ -41,25 +45,25 @@ impl<T> ShortVec<T> { #[inline] pub fn as_slice(&self) -> &[T] { match self { - ShortVec::Empty => &[], - ShortVec::Single(v) => core::slice::from_ref(v), - ShortVec::Multi(v) => v.as_slice(), + ShortSlice::ZeroOne(None) => &[], + ShortSlice::ZeroOne(Some(v)) => core::slice::from_ref(v), + ShortSlice::Multi(v) => v, } } #[inline] pub fn as_mut_slice(&mut self) -> &mut [T] { match self { - ShortVec::Empty => &mut [], - ShortVec::Single(v) => core::slice::from_mut(v), - ShortVec::Multi(v) => v.as_mut_slice(), + ShortSlice::ZeroOne(None) => &mut [], + ShortSlice::ZeroOne(Some(v)) => core::slice::from_mut(v), + ShortSlice::Multi(v) => v, } } #[inline] pub const fn single(&self) -> Option<&T> { match self { - ShortVec::Single(v) => Some(v), + ShortSlice::ZeroOne(Some(v)) => Some(v), _ => None, } } @@ -67,9 +71,9 @@ impl<T> ShortVec<T> { #[inline] pub fn len(&self) -> usize { match self { - ShortVec::Empty => 0, - ShortVec::Single(_) => 1, - ShortVec::Multi(ref v) => v.len(), + ShortSlice::ZeroOne(None) => 0, + ShortSlice::ZeroOne(_) => 1, + ShortSlice::Multi(ref v) => v.len(), } } @@ -81,19 +85,20 @@ impl<T> ShortVec<T> { self.len() ); - *self = match core::mem::replace(self, ShortVec::Empty) { - ShortVec::Empty => ShortVec::Single(elt), - ShortVec::Single(item) => { + *self = match core::mem::replace(self, ShortSlice::ZeroOne(None)) { + ShortSlice::ZeroOne(None) => ShortSlice::ZeroOne(Some(elt)), + ShortSlice::ZeroOne(Some(item)) => { let items = if index == 0 { - vec![elt, item] + vec![elt, item].into_boxed_slice() } else { - vec![item, elt] + vec![item, elt].into_boxed_slice() }; - ShortVec::Multi(items) + ShortSlice::Multi(items) } - ShortVec::Multi(mut items) => { + ShortSlice::Multi(items) => { + let mut items = items.into_vec(); items.insert(index, elt); - ShortVec::Multi(items) + ShortSlice::Multi(items.into_boxed_slice()) } } } @@ -106,17 +111,18 @@ impl<T> ShortVec<T> { self.len() ); - let (replaced, removed_item) = match core::mem::replace(self, ShortVec::Empty) { - ShortVec::Empty => unreachable!(), - ShortVec::Single(v) => (ShortVec::Empty, v), - ShortVec::Multi(mut v) => { + let (replaced, removed_item) = match core::mem::replace(self, ShortSlice::ZeroOne(None)) { + ShortSlice::ZeroOne(None) => unreachable!(), + ShortSlice::ZeroOne(Some(v)) => (ShortSlice::ZeroOne(None), v), + ShortSlice::Multi(v) => { + let mut v = v.into_vec(); let removed_item = v.remove(index); match v.len() { #[allow(clippy::unwrap_used)] // we know that the vec has exactly one element left - 1 => (ShortVec::Single(v.pop().unwrap()), removed_item), + 1 => (ShortSlice::ZeroOne(Some(v.pop().unwrap())), removed_item), // v has at least 2 elements, create a Multi variant - _ => (ShortVec::Multi(v), removed_item), + _ => (ShortSlice::Multi(v.into_boxed_slice()), removed_item), } } }; @@ -126,38 +132,38 @@ impl<T> ShortVec<T> { #[inline] pub fn clear(&mut self) { - let _ = core::mem::replace(self, ShortVec::Empty); + let _ = core::mem::replace(self, ShortSlice::ZeroOne(None)); } } -impl<T> From<Vec<T>> for ShortVec<T> { +impl<T> From<Vec<T>> for ShortSlice<T> { fn from(v: Vec<T>) -> Self { match v.len() { - 0 => ShortVec::Empty, + 0 => ShortSlice::ZeroOne(None), #[allow(clippy::unwrap_used)] // we know that the vec is not empty - 1 => ShortVec::Single(v.into_iter().next().unwrap()), - _ => ShortVec::Multi(v), + 1 => ShortSlice::ZeroOne(Some(v.into_iter().next().unwrap())), + _ => ShortSlice::Multi(v.into_boxed_slice()), } } } -impl<T> Default for ShortVec<T> { +impl<T> Default for ShortSlice<T> { fn default() -> Self { - ShortVec::Empty + ShortSlice::ZeroOne(None) } } -impl<T> FromIterator<T> for ShortVec<T> { +impl<T> FromIterator<T> for ShortSlice<T> { fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self { iter.into_iter().collect::<Vec<_>>().into() } } -impl<K, V> StoreConstEmpty<K, V> for ShortVec<(K, V)> { - const EMPTY: ShortVec<(K, V)> = ShortVec::Empty; +impl<K, V> StoreConstEmpty<K, V> for ShortSlice<(K, V)> { + const EMPTY: ShortSlice<(K, V)> = ShortSlice::ZeroOne(None); } -impl<K, V> Store<K, V> for ShortVec<(K, V)> { +impl<K, V> Store<K, V> for ShortSlice<(K, V)> { #[inline] fn lm_len(&self) -> usize { self.len() @@ -165,7 +171,7 @@ impl<K, V> Store<K, V> for ShortVec<(K, V)> { #[inline] fn lm_is_empty(&self) -> bool { - matches!(self, ShortVec::Empty) + matches!(self, ShortSlice::ZeroOne(None)) } #[inline] @@ -176,9 +182,8 @@ impl<K, V> Store<K, V> for ShortVec<(K, V)> { #[inline] fn lm_last(&self) -> Option<(&K, &V)> { match self { - ShortVec::Empty => None, - ShortVec::Single(v) => Some(v), - ShortVec::Multi(v) => v.as_slice().last(), + ShortSlice::ZeroOne(v) => v.as_ref(), + ShortSlice::Multi(v) => v.last(), } .map(|elt| (&elt.0, &elt.1)) } @@ -192,18 +197,20 @@ impl<K, V> Store<K, V> for ShortVec<(K, V)> { } } -impl<K, V> StoreMut<K, V> for ShortVec<(K, V)> { - fn lm_with_capacity(_capacity: usize) -> Self { - ShortVec::Empty +impl<K: Ord, V> StoreFromIterable<K, V> for ShortSlice<(K, V)> { + fn lm_sort_from_iter<I: IntoIterator<Item = (K, V)>>(iter: I) -> Self { + let v: Vec<(K, V)> = Vec::lm_sort_from_iter(iter); + v.into() } +} - // ShortVec supports reserving capacity for additional elements only if we have already allocated a vector - fn lm_reserve(&mut self, additional: usize) { - if let ShortVec::Multi(ref mut v) = self { - v.reserve(additional) - } +impl<K, V> StoreMut<K, V> for ShortSlice<(K, V)> { + fn lm_with_capacity(_capacity: usize) -> Self { + ShortSlice::ZeroOne(None) } + fn lm_reserve(&mut self, _additional: usize) {} + fn lm_get_mut(&mut self, index: usize) -> Option<(&K, &mut V)> { self.as_mut_slice() .get_mut(index) @@ -227,7 +234,7 @@ impl<K, V> StoreMut<K, V> for ShortVec<(K, V)> { } } -impl<'a, K: 'a, V: 'a> StoreIterable<'a, K, V> for ShortVec<(K, V)> { +impl<'a, K: 'a, V: 'a> StoreIterable<'a, K, V> for ShortSlice<(K, V)> { type KeyValueIter = core::iter::Map<core::slice::Iter<'a, (K, V)>, for<'r> fn(&'r (K, V)) -> (&'r K, &'r V)>; @@ -236,11 +243,11 @@ impl<'a, K: 'a, V: 'a> StoreIterable<'a, K, V> for ShortVec<(K, V)> { } } -impl<K, V> StoreFromIterator<K, V> for ShortVec<(K, V)> {} +impl<K, V> StoreFromIterator<K, V> for ShortSlice<(K, V)> {} #[test] fn test_shortvec_impl() { - litemap::testing::check_store::<ShortVec<(u32, u64)>>(); + litemap::testing::check_store::<ShortSlice<(u32, u64)>>(); } macro_rules! impl_tinystr_subtag { diff --git a/vendor/icu_locid/src/langid.rs b/vendor/icu_locid/src/langid.rs index b6858c91b..78668bc0d 100644 --- a/vendor/icu_locid/src/langid.rs +++ b/vendor/icu_locid/src/langid.rs @@ -307,7 +307,7 @@ impl LanguageIdentifier { return false; } } - iter.next() == None + iter.next().is_none() } pub(crate) fn for_each_subtag_str<E, F>(&self, f: &mut F) -> Result<(), E> diff --git a/vendor/icu_locid/src/lib.rs b/vendor/icu_locid/src/lib.rs index 226a8e53c..d9c4f7699 100644 --- a/vendor/icu_locid/src/lib.rs +++ b/vendor/icu_locid/src/lib.rs @@ -56,7 +56,7 @@ clippy::panic, clippy::exhaustive_structs, clippy::exhaustive_enums, - // TODO(#2266): enable missing_debug_implementations, + missing_debug_implementations, ) )] #![warn(missing_docs)] @@ -77,9 +77,15 @@ pub use locale::Locale; pub use ordering::SubtagOrderingResult; pub use parser::errors::ParserError; +#[doc(no_inline)] +pub use ParserError as Error; + pub mod extensions; pub mod subtags; pub mod zerovec; #[cfg(feature = "serde")] mod serde; + +#[cfg(feature = "databake")] +mod databake; diff --git a/vendor/icu_locid/src/locale.rs b/vendor/icu_locid/src/locale.rs index 5d9109fee..4412da86e 100644 --- a/vendor/icu_locid/src/locale.rs +++ b/vendor/icu_locid/src/locale.rs @@ -87,35 +87,24 @@ pub struct Locale { #[test] fn test_sizes() { - // Remove when we upgrade to a compiler where the new sizes are default - let forced_nightly = std::env::var("ICU4X_BUILDING_WITH_FORCED_NIGHTLY").is_ok(); assert_eq!(core::mem::size_of::<subtags::Language>(), 3); assert_eq!(core::mem::size_of::<subtags::Script>(), 4); assert_eq!(core::mem::size_of::<subtags::Region>(), 3); assert_eq!(core::mem::size_of::<subtags::Variant>(), 8); - assert_eq!(core::mem::size_of::<subtags::Variants>(), 32); - assert_eq!(core::mem::size_of::<LanguageIdentifier>(), 48); + assert_eq!(core::mem::size_of::<subtags::Variants>(), 16); + assert_eq!(core::mem::size_of::<LanguageIdentifier>(), 32); - assert_eq!(core::mem::size_of::<extensions::transform::Transform>(), 72); - assert_eq!(core::mem::size_of::<Option<LanguageIdentifier>>(), 48); + assert_eq!(core::mem::size_of::<extensions::transform::Transform>(), 56); + assert_eq!(core::mem::size_of::<Option<LanguageIdentifier>>(), 32); assert_eq!(core::mem::size_of::<extensions::transform::Fields>(), 24); assert_eq!(core::mem::size_of::<extensions::unicode::Attributes>(), 24); - assert_eq!( - core::mem::size_of::<extensions::unicode::Keywords>(), - if forced_nightly { 40 } else { 48 } - ); + assert_eq!(core::mem::size_of::<extensions::unicode::Keywords>(), 24); assert_eq!(core::mem::size_of::<Vec<extensions::other::Other>>(), 24); assert_eq!(core::mem::size_of::<extensions::private::Private>(), 24); - assert_eq!( - core::mem::size_of::<extensions::Extensions>(), - if forced_nightly { 184 } else { 192 } - ); + assert_eq!(core::mem::size_of::<extensions::Extensions>(), 152); - assert_eq!( - core::mem::size_of::<Locale>(), - if forced_nightly { 232 } else { 240 } - ); + assert_eq!(core::mem::size_of::<Locale>(), 184); } impl Locale { @@ -323,7 +312,7 @@ impl Locale { } } } - iter.next() == None + iter.next().is_none() } #[doc(hidden)] diff --git a/vendor/icu_locid/src/ordering.rs b/vendor/icu_locid/src/ordering.rs index b4e5c2760..c877c60c3 100644 --- a/vendor/icu_locid/src/ordering.rs +++ b/vendor/icu_locid/src/ordering.rs @@ -35,6 +35,7 @@ use core::cmp::Ordering; /// /// [`Locale::strict_cmp_iter`]: crate::Locale::strict_cmp_iter #[allow(clippy::exhaustive_enums)] // well-defined exhaustive enum semantics +#[derive(Debug)] pub enum SubtagOrderingResult<I> { /// Potentially remaining subtags after the comparison operation. Subtags(I), diff --git a/vendor/icu_locid/src/parser/errors.rs b/vendor/icu_locid/src/parser/errors.rs index 5cbbb2bd4..b2262460c 100644 --- a/vendor/icu_locid/src/parser/errors.rs +++ b/vendor/icu_locid/src/parser/errors.rs @@ -7,6 +7,8 @@ use displaydoc::Display; /// List of parser errors that can be generated /// while parsing [`LanguageIdentifier`](crate::LanguageIdentifier), [`Locale`](crate::Locale), /// [`subtags`](crate::subtags) or [`extensions`](crate::extensions). +/// +/// Re-exported as [`Error`](crate::Error). #[derive(Display, Debug, PartialEq, Copy, Clone)] #[non_exhaustive] pub enum ParserError { diff --git a/vendor/icu_locid/src/subtags/variants.rs b/vendor/icu_locid/src/subtags/variants.rs index 3bd83f149..70aeae1d9 100644 --- a/vendor/icu_locid/src/subtags/variants.rs +++ b/vendor/icu_locid/src/subtags/variants.rs @@ -3,7 +3,7 @@ // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). use super::Variant; -use crate::helpers::ShortVec; +use crate::helpers::ShortSlice; use alloc::vec::Vec; use core::ops::Deref; @@ -26,7 +26,7 @@ use core::ops::Deref; /// assert_eq!(variants.to_string(), "macos-posix"); /// ``` #[derive(Default, Debug, PartialEq, Eq, Clone, Hash, PartialOrd, Ord)] -pub struct Variants(ShortVec<Variant>); +pub struct Variants(ShortSlice<Variant>); impl Variants { /// Returns a new empty list of variants. Same as [`default()`](Default::default()), but is `const`. @@ -40,7 +40,7 @@ impl Variants { /// ``` #[inline] pub const fn new() -> Self { - Self(ShortVec::new()) + Self(ShortSlice::new()) } /// Creates a new [`Variants`] set from a single [`Variant`]. @@ -54,7 +54,7 @@ impl Variants { /// ``` #[inline] pub const fn from_variant(variant: Variant) -> Self { - Self(ShortVec::new_single(variant)) + Self(ShortSlice::new_single(variant)) } /// Creates a new [`Variants`] set from a [`Vec`]. @@ -77,7 +77,7 @@ impl Variants { /// for the caller to use [`binary_search`](slice::binary_search) instead of [`sort`](slice::sort) /// and [`dedup`](Vec::dedup()). pub fn from_vec_unchecked(input: Vec<Variant>) -> Self { - Self(ShortVec::from(input)) + Self(ShortSlice::from(input)) } /// Empties the [`Variants`] list. diff --git a/vendor/icu_locid/tests/langid.rs b/vendor/icu_locid/tests/langid.rs index 60414e087..ee7bb9817 100644 --- a/vendor/icu_locid/tests/langid.rs +++ b/vendor/icu_locid/tests/langid.rs @@ -124,7 +124,7 @@ fn test_langid_normalizing_eq_str() { helpers::read_fixture(path).expect("Failed to read a fixture"); for test in tests { let parsed: LanguageIdentifier = test.input.try_into().expect("Parsing failed."); - assert!(parsed.normalizing_eq(&*parsed.write_to_string())); + assert!(parsed.normalizing_eq(&parsed.write_to_string())); } // Check that trailing characters are not ignored @@ -152,7 +152,7 @@ fn test_langid_strict_cmp() { let a_normalized = a_langid.write_to_string(); let string_cmp = a_normalized.as_bytes().cmp(b.as_bytes()); let test_cmp = a_langid.strict_cmp(b.as_bytes()); - assert_eq!(string_cmp, test_cmp, "{:?}/{:?}", a, b); + assert_eq!(string_cmp, test_cmp, "{a:?}/{b:?}"); } } } diff --git a/vendor/icu_locid/tests/locale.rs b/vendor/icu_locid/tests/locale.rs index cd3448983..9cb320ad9 100644 --- a/vendor/icu_locid/tests/locale.rs +++ b/vendor/icu_locid/tests/locale.rs @@ -85,7 +85,7 @@ fn test_locale_normalizing_eq_str() { helpers::read_fixture(path).expect("Failed to read a fixture"); for test in tests { let parsed: Locale = test.input.try_into().expect("Parsing failed."); - assert!(parsed.normalizing_eq(&*parsed.write_to_string())); + assert!(parsed.normalizing_eq(&parsed.write_to_string())); } // Check that trailing characters are not ignored @@ -104,7 +104,7 @@ fn test_locale_strict_cmp() { fixtures::LocaleInfo::Identifier(ref s) => s.identifier.as_str(), _ => match t.output { fixtures::LocaleInfo::Identifier(ref s) => s.identifier.as_str(), - _ => panic!("No string in fixture input or output: {:?}", t), + _ => panic!("No string in fixture input or output: {t:?}"), }, }) .collect::<Vec<&str>>(); @@ -114,7 +114,7 @@ fn test_locale_strict_cmp() { let a_normalized = a_langid.write_to_string(); let string_cmp = a_normalized.as_bytes().cmp(b.as_bytes()); let test_cmp = a_langid.strict_cmp(b.as_bytes()); - assert_eq!(string_cmp, test_cmp, "{:?}/{:?}", a, b); + assert_eq!(string_cmp, test_cmp, "{a:?}/{b:?}"); } } } |