| { | ||
| "git": { | ||
| "sha1": "66f6ec2d0b75112deadf7e067dbf2ef114d41c50" | ||
| "sha1": "bdb1138fc92221109029ac098c5fc21de4b9488a" | ||
| }, | ||
| "path_in_vcs": "" | ||
| } |
+287
-327
@@ -25,23 +25,29 @@ # This file is automatically @generated by Cargo. | ||
| name = "anyhow" | ||
| version = "1.0.102" | ||
| version = "1.0.100" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" | ||
| checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" | ||
| [[package]] | ||
| name = "autocfg" | ||
| version = "1.5.1" | ||
| version = "1.5.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" | ||
| checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" | ||
| [[package]] | ||
| name = "bitflags" | ||
| version = "2.11.1" | ||
| version = "1.3.2" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" | ||
| checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
| [[package]] | ||
| name = "bitflags" | ||
| version = "2.10.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" | ||
| [[package]] | ||
| name = "bumpalo" | ||
| version = "3.20.3" | ||
| version = "3.19.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" | ||
| checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" | ||
@@ -56,5 +62,5 @@ [[package]] | ||
| name = "cc" | ||
| version = "1.2.62" | ||
| version = "1.2.50" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" | ||
| checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" | ||
| dependencies = [ | ||
@@ -73,5 +79,5 @@ "find-msvc-tools", | ||
| name = "chrono" | ||
| version = "0.4.44" | ||
| version = "0.4.42" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" | ||
| checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" | ||
| dependencies = [ | ||
@@ -98,9 +104,10 @@ "iana-time-zone", | ||
| name = "console" | ||
| version = "0.16.3" | ||
| version = "0.15.11" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" | ||
| checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" | ||
| dependencies = [ | ||
| "encode_unicode", | ||
| "libc", | ||
| "windows-sys", | ||
| "once_cell", | ||
| "windows-sys 0.59.0", | ||
| ] | ||
@@ -115,6 +122,38 @@ | ||
| [[package]] | ||
| name = "defmt" | ||
| version = "1.1.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f" | ||
| dependencies = [ | ||
| "bitflags 1.3.2", | ||
| "defmt-macros", | ||
| ] | ||
| [[package]] | ||
| name = "defmt-macros" | ||
| version = "1.1.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b" | ||
| dependencies = [ | ||
| "defmt-parser", | ||
| "proc-macro-error2", | ||
| "proc-macro2", | ||
| "quote", | ||
| "syn", | ||
| ] | ||
| [[package]] | ||
| name = "defmt-parser" | ||
| version = "1.0.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" | ||
| dependencies = [ | ||
| "thiserror 2.0.18", | ||
| ] | ||
| [[package]] | ||
| name = "deranged" | ||
| version = "0.5.8" | ||
| version = "0.5.5" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" | ||
| checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" | ||
| dependencies = [ | ||
@@ -143,3 +182,3 @@ "powerfmt", | ||
| "libc", | ||
| "windows-sys", | ||
| "windows-sys 0.61.2", | ||
| ] | ||
@@ -149,40 +188,21 @@ | ||
| name = "fastrand" | ||
| version = "2.4.1" | ||
| version = "2.3.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" | ||
| checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" | ||
| [[package]] | ||
| name = "find-msvc-tools" | ||
| version = "0.1.9" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" | ||
| [[package]] | ||
| name = "foldhash" | ||
| version = "0.1.5" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" | ||
| checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" | ||
| [[package]] | ||
| name = "futures-core" | ||
| version = "0.3.32" | ||
| name = "getrandom" | ||
| version = "0.2.16" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" | ||
| [[package]] | ||
| name = "futures-task" | ||
| version = "0.3.32" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" | ||
| [[package]] | ||
| name = "futures-util" | ||
| version = "0.3.32" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" | ||
| checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" | ||
| dependencies = [ | ||
| "futures-core", | ||
| "futures-task", | ||
| "pin-project-lite", | ||
| "slab", | ||
| "cfg-if", | ||
| "libc", | ||
| "wasi", | ||
| ] | ||
@@ -192,5 +212,5 @@ | ||
| name = "getrandom" | ||
| version = "0.4.2" | ||
| version = "0.3.4" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" | ||
| checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" | ||
| dependencies = [ | ||
@@ -200,5 +220,3 @@ "cfg-if", | ||
| "r-efi", | ||
| "rand_core 0.10.1", | ||
| "wasip2", | ||
| "wasip3", | ||
| ] | ||
@@ -208,16 +226,7 @@ | ||
| name = "hashbrown" | ||
| version = "0.15.5" | ||
| version = "0.16.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" | ||
| dependencies = [ | ||
| "foldhash", | ||
| ] | ||
| checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" | ||
| [[package]] | ||
| name = "hashbrown" | ||
| version = "0.17.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" | ||
| [[package]] | ||
| name = "heck" | ||
@@ -230,5 +239,5 @@ version = "0.5.0" | ||
| name = "hifitime" | ||
| version = "3.9.0" | ||
| version = "4.3.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7c587aef1280b84f15bfd84eefff9ee55d1a2826e67f089ed263a8c3a029c273" | ||
| checksum = "a978b79fb40cea4c6592890ffe0021dfea5c51a107fbac565abae82fd24a15af" | ||
| dependencies = [ | ||
@@ -240,4 +249,6 @@ "js-sys", | ||
| "serde_derive", | ||
| "snafu", | ||
| "wasm-bindgen", | ||
| "web-sys", | ||
| "web-time", | ||
| ] | ||
@@ -253,5 +264,5 @@ | ||
| name = "iana-time-zone" | ||
| version = "0.1.65" | ||
| version = "0.1.64" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" | ||
| checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" | ||
| dependencies = [ | ||
@@ -277,17 +288,9 @@ "android_system_properties", | ||
| [[package]] | ||
| name = "id-arena" | ||
| version = "2.3.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" | ||
| [[package]] | ||
| name = "indexmap" | ||
| version = "2.14.0" | ||
| version = "2.12.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" | ||
| checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" | ||
| dependencies = [ | ||
| "equivalent", | ||
| "hashbrown 0.17.1", | ||
| "serde", | ||
| "serde_core", | ||
| "hashbrown", | ||
| ] | ||
@@ -297,5 +300,5 @@ | ||
| name = "insta" | ||
| version = "1.47.2" | ||
| version = "1.45.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7b4a6248eb93a4401ed2f37dfe8ea592d3cf05b7cf4f8efa867b6895af7e094e" | ||
| checksum = "b76866be74d68b1595eb8060cb9191dca9c021db2316558e52ddc5d55d41b66c" | ||
| dependencies = [ | ||
@@ -310,9 +313,9 @@ "console", | ||
| name = "itoa" | ||
| version = "1.0.18" | ||
| version = "1.0.16" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" | ||
| checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010" | ||
| [[package]] | ||
| name = "jiff" | ||
| version = "0.2.28" | ||
| version = "0.2.29" | ||
| dependencies = [ | ||
@@ -322,2 +325,3 @@ "anyhow", | ||
| "chrono-tz", | ||
| "defmt", | ||
| "hifitime", | ||
@@ -339,2 +343,3 @@ "humantime", | ||
| "tabwriter", | ||
| "tempfile", | ||
| "time", | ||
@@ -350,5 +355,5 @@ "time-tz", | ||
| name = "jiff-static" | ||
| version = "0.2.28" | ||
| version = "0.2.29" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" | ||
| checksum = "0666b5ab5ecaca213fc2a85b8c0083d9004e84ee2d5f9a7e0017aaf50986f25f" | ||
| dependencies = [ | ||
@@ -378,8 +383,6 @@ "jiff-tzdb", | ||
| name = "js-sys" | ||
| version = "0.3.99" | ||
| version = "0.3.83" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" | ||
| checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" | ||
| dependencies = [ | ||
| "cfg-if", | ||
| "futures-util", | ||
| "once_cell", | ||
@@ -390,12 +393,6 @@ "wasm-bindgen", | ||
| [[package]] | ||
| name = "leb128fmt" | ||
| version = "0.1.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" | ||
| [[package]] | ||
| name = "lexical-core" | ||
| version = "0.8.5" | ||
| version = "1.0.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" | ||
| checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" | ||
| dependencies = [ | ||
@@ -409,9 +406,8 @@ "lexical-parse-float", | ||
| name = "lexical-parse-float" | ||
| version = "0.8.5" | ||
| version = "1.0.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" | ||
| checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" | ||
| dependencies = [ | ||
| "lexical-parse-integer", | ||
| "lexical-util", | ||
| "static_assertions", | ||
| ] | ||
@@ -421,8 +417,7 @@ | ||
| name = "lexical-parse-integer" | ||
| version = "0.8.6" | ||
| version = "1.0.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" | ||
| checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" | ||
| dependencies = [ | ||
| "lexical-util", | ||
| "static_assertions", | ||
| ] | ||
@@ -432,8 +427,5 @@ | ||
| name = "lexical-util" | ||
| version = "0.8.5" | ||
| version = "1.0.7" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" | ||
| dependencies = [ | ||
| "static_assertions", | ||
| ] | ||
| checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" | ||
@@ -448,5 +440,5 @@ [[package]] | ||
| name = "libm" | ||
| version = "0.2.16" | ||
| version = "0.2.15" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" | ||
| checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" | ||
@@ -461,17 +453,17 @@ [[package]] | ||
| name = "log" | ||
| version = "0.4.30" | ||
| version = "0.4.29" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" | ||
| checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" | ||
| [[package]] | ||
| name = "memchr" | ||
| version = "2.8.0" | ||
| version = "2.7.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" | ||
| checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" | ||
| [[package]] | ||
| name = "num-conv" | ||
| version = "0.2.2" | ||
| version = "0.1.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" | ||
| checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" | ||
@@ -499,5 +491,5 @@ [[package]] | ||
| name = "once_cell" | ||
| version = "1.21.4" | ||
| version = "1.21.3" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" | ||
| checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" | ||
@@ -548,3 +540,3 @@ [[package]] | ||
| "phf_shared 0.11.3", | ||
| "rand 0.8.6", | ||
| "rand", | ||
| ] | ||
@@ -571,18 +563,12 @@ | ||
| [[package]] | ||
| name = "pin-project-lite" | ||
| version = "0.2.17" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" | ||
| [[package]] | ||
| name = "portable-atomic" | ||
| version = "1.13.1" | ||
| version = "1.12.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" | ||
| checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd" | ||
| [[package]] | ||
| name = "portable-atomic-util" | ||
| version = "0.2.7" | ||
| version = "0.2.4" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" | ||
| checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" | ||
| dependencies = [ | ||
@@ -599,8 +585,20 @@ "portable-atomic", | ||
| [[package]] | ||
| name = "prettyplease" | ||
| version = "0.2.37" | ||
| name = "proc-macro-error-attr2" | ||
| version = "2.0.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" | ||
| checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" | ||
| dependencies = [ | ||
| "proc-macro2", | ||
| "quote", | ||
| ] | ||
| [[package]] | ||
| name = "proc-macro-error2" | ||
| version = "2.0.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" | ||
| dependencies = [ | ||
| "proc-macro-error-attr2", | ||
| "proc-macro2", | ||
| "quote", | ||
| "syn", | ||
@@ -611,5 +609,5 @@ ] | ||
| name = "proc-macro2" | ||
| version = "1.0.106" | ||
| version = "1.0.103" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" | ||
| checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" | ||
| dependencies = [ | ||
@@ -621,7 +619,7 @@ "unicode-ident", | ||
| name = "quickcheck" | ||
| version = "1.1.0" | ||
| version = "1.0.3" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "95c589f335db0f6aaa168a7cd27b1fc6920f5e1470c804f814d9cd6e62a0f70b" | ||
| checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" | ||
| dependencies = [ | ||
| "rand 0.10.1", | ||
| "rand", | ||
| ] | ||
@@ -631,5 +629,5 @@ | ||
| name = "quote" | ||
| version = "1.0.45" | ||
| version = "1.0.42" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" | ||
| checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" | ||
| dependencies = [ | ||
@@ -641,26 +639,16 @@ "proc-macro2", | ||
| name = "r-efi" | ||
| version = "6.0.0" | ||
| version = "5.3.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" | ||
| checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" | ||
| [[package]] | ||
| name = "rand" | ||
| version = "0.8.6" | ||
| version = "0.8.5" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" | ||
| checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" | ||
| dependencies = [ | ||
| "rand_core 0.6.4", | ||
| "rand_core", | ||
| ] | ||
| [[package]] | ||
| name = "rand" | ||
| version = "0.10.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" | ||
| dependencies = [ | ||
| "getrandom", | ||
| "rand_core 0.10.1", | ||
| ] | ||
| [[package]] | ||
| name = "rand_core" | ||
@@ -670,10 +658,7 @@ version = "0.6.4" | ||
| checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" | ||
| dependencies = [ | ||
| "getrandom 0.2.16", | ||
| ] | ||
| [[package]] | ||
| name = "rand_core" | ||
| version = "0.10.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" | ||
| [[package]] | ||
| name = "regex" | ||
@@ -692,5 +677,5 @@ version = "1.12.3" | ||
| name = "regex-automata" | ||
| version = "0.4.14" | ||
| version = "0.4.13" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" | ||
| checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" | ||
| dependencies = [ | ||
@@ -704,5 +689,5 @@ "aho-corasick", | ||
| name = "regex-syntax" | ||
| version = "0.8.10" | ||
| version = "0.8.9" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" | ||
| checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" | ||
@@ -715,7 +700,7 @@ [[package]] | ||
| dependencies = [ | ||
| "bitflags", | ||
| "bitflags 2.10.0", | ||
| "errno", | ||
| "libc", | ||
| "linux-raw-sys", | ||
| "windows-sys", | ||
| "windows-sys 0.61.2", | ||
| ] | ||
@@ -731,5 +716,5 @@ | ||
| name = "ryu" | ||
| version = "1.0.23" | ||
| version = "1.0.21" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" | ||
| checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea" | ||
@@ -746,8 +731,2 @@ [[package]] | ||
| [[package]] | ||
| name = "semver" | ||
| version = "1.0.28" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" | ||
| [[package]] | ||
| name = "serde" | ||
@@ -770,3 +749,3 @@ version = "1.0.228" | ||
| "serde", | ||
| "thiserror", | ||
| "thiserror 1.0.69", | ||
| "xml-rs", | ||
@@ -797,5 +776,5 @@ ] | ||
| name = "serde_json" | ||
| version = "1.0.150" | ||
| version = "1.0.147" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" | ||
| checksum = "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4" | ||
| dependencies = [ | ||
@@ -836,23 +815,32 @@ "itoa", | ||
| name = "siphasher" | ||
| version = "1.0.3" | ||
| version = "1.0.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" | ||
| checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" | ||
| [[package]] | ||
| name = "slab" | ||
| version = "0.4.12" | ||
| name = "snafu" | ||
| version = "0.9.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" | ||
| checksum = "d1a012328be2e3f5d5f6f3218147ca02588cea4cb865e876849ab6debcf36522" | ||
| dependencies = [ | ||
| "snafu-derive", | ||
| ] | ||
| [[package]] | ||
| name = "static_assertions" | ||
| version = "1.1.0" | ||
| name = "snafu-derive" | ||
| version = "0.9.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" | ||
| checksum = "5f103c50866b8743da9429b8a581d81a27c2d3a9c4ac7df8f8571c1dd7896eda" | ||
| dependencies = [ | ||
| "heck", | ||
| "proc-macro2", | ||
| "quote", | ||
| "syn", | ||
| ] | ||
| [[package]] | ||
| name = "syn" | ||
| version = "2.0.117" | ||
| version = "2.0.111" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" | ||
| checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" | ||
| dependencies = [ | ||
@@ -880,6 +868,6 @@ "proc-macro2", | ||
| "fastrand", | ||
| "getrandom", | ||
| "getrandom 0.3.4", | ||
| "once_cell", | ||
| "rustix", | ||
| "windows-sys", | ||
| "windows-sys 0.61.2", | ||
| ] | ||
@@ -893,6 +881,15 @@ | ||
| dependencies = [ | ||
| "thiserror-impl", | ||
| "thiserror-impl 1.0.69", | ||
| ] | ||
| [[package]] | ||
| name = "thiserror" | ||
| version = "2.0.18" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" | ||
| dependencies = [ | ||
| "thiserror-impl 2.0.18", | ||
| ] | ||
| [[package]] | ||
| name = "thiserror-impl" | ||
@@ -909,6 +906,17 @@ version = "1.0.69" | ||
| [[package]] | ||
| name = "thiserror-impl" | ||
| version = "2.0.18" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" | ||
| dependencies = [ | ||
| "proc-macro2", | ||
| "quote", | ||
| "syn", | ||
| ] | ||
| [[package]] | ||
| name = "time" | ||
| version = "0.3.47" | ||
| version = "0.3.44" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" | ||
| checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" | ||
| dependencies = [ | ||
@@ -921,3 +929,3 @@ "deranged", | ||
| "powerfmt", | ||
| "serde_core", | ||
| "serde", | ||
| "time-core", | ||
@@ -929,11 +937,11 @@ "time-macros", | ||
| name = "time-core" | ||
| version = "0.1.8" | ||
| version = "0.1.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" | ||
| checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" | ||
| [[package]] | ||
| name = "time-macros" | ||
| version = "0.2.27" | ||
| version = "0.2.24" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" | ||
| checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" | ||
| dependencies = [ | ||
@@ -972,5 +980,5 @@ "num-conv", | ||
| name = "unicode-ident" | ||
| version = "1.0.24" | ||
| version = "1.0.22" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" | ||
| checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" | ||
@@ -984,8 +992,2 @@ [[package]] | ||
| [[package]] | ||
| name = "unicode-xid" | ||
| version = "0.2.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" | ||
| [[package]] | ||
| name = "unsafe-libyaml" | ||
@@ -1007,17 +1009,14 @@ version = "0.2.11" | ||
| [[package]] | ||
| name = "wasip2" | ||
| version = "1.0.3+wasi-0.2.9" | ||
| name = "wasi" | ||
| version = "0.11.1+wasi-snapshot-preview1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" | ||
| dependencies = [ | ||
| "wit-bindgen 0.57.1", | ||
| ] | ||
| checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" | ||
| [[package]] | ||
| name = "wasip3" | ||
| version = "0.4.0+wasi-0.3.0-rc-2026-01-06" | ||
| name = "wasip2" | ||
| version = "1.0.1+wasi-0.2.4" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" | ||
| checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" | ||
| dependencies = [ | ||
| "wit-bindgen 0.51.0", | ||
| "wit-bindgen", | ||
| ] | ||
@@ -1027,5 +1026,5 @@ | ||
| name = "wasm-bindgen" | ||
| version = "0.2.122" | ||
| version = "0.2.106" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" | ||
| checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" | ||
| dependencies = [ | ||
@@ -1041,5 +1040,5 @@ "cfg-if", | ||
| name = "wasm-bindgen-macro" | ||
| version = "0.2.122" | ||
| version = "0.2.106" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" | ||
| checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" | ||
| dependencies = [ | ||
@@ -1052,5 +1051,5 @@ "quote", | ||
| name = "wasm-bindgen-macro-support" | ||
| version = "0.2.122" | ||
| version = "0.2.106" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" | ||
| checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" | ||
| dependencies = [ | ||
@@ -1066,5 +1065,5 @@ "bumpalo", | ||
| name = "wasm-bindgen-shared" | ||
| version = "0.2.122" | ||
| version = "0.2.106" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" | ||
| checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" | ||
| dependencies = [ | ||
@@ -1075,41 +1074,17 @@ "unicode-ident", | ||
| [[package]] | ||
| name = "wasm-encoder" | ||
| version = "0.244.0" | ||
| name = "web-sys" | ||
| version = "0.3.83" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" | ||
| checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" | ||
| dependencies = [ | ||
| "leb128fmt", | ||
| "wasmparser", | ||
| "js-sys", | ||
| "wasm-bindgen", | ||
| ] | ||
| [[package]] | ||
| name = "wasm-metadata" | ||
| version = "0.244.0" | ||
| name = "web-time" | ||
| version = "1.1.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" | ||
| checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "indexmap", | ||
| "wasm-encoder", | ||
| "wasmparser", | ||
| ] | ||
| [[package]] | ||
| name = "wasmparser" | ||
| version = "0.244.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" | ||
| dependencies = [ | ||
| "bitflags", | ||
| "hashbrown 0.15.5", | ||
| "indexmap", | ||
| "semver", | ||
| ] | ||
| [[package]] | ||
| name = "web-sys" | ||
| version = "0.3.99" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" | ||
| dependencies = [ | ||
| "js-sys", | ||
@@ -1125,3 +1100,3 @@ "wasm-bindgen", | ||
| dependencies = [ | ||
| "windows-sys", | ||
| "windows-sys 0.61.2", | ||
| ] | ||
@@ -1190,2 +1165,11 @@ | ||
| name = "windows-sys" | ||
| version = "0.59.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" | ||
| dependencies = [ | ||
| "windows-targets", | ||
| ] | ||
| [[package]] | ||
| name = "windows-sys" | ||
| version = "0.61.2" | ||
@@ -1199,96 +1183,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| [[package]] | ||
| name = "wit-bindgen" | ||
| version = "0.51.0" | ||
| name = "windows-targets" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" | ||
| checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" | ||
| dependencies = [ | ||
| "wit-bindgen-rust-macro", | ||
| "windows_aarch64_gnullvm", | ||
| "windows_aarch64_msvc", | ||
| "windows_i686_gnu", | ||
| "windows_i686_gnullvm", | ||
| "windows_i686_msvc", | ||
| "windows_x86_64_gnu", | ||
| "windows_x86_64_gnullvm", | ||
| "windows_x86_64_msvc", | ||
| ] | ||
| [[package]] | ||
| name = "wit-bindgen" | ||
| version = "0.57.1" | ||
| name = "windows_aarch64_gnullvm" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" | ||
| checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" | ||
| [[package]] | ||
| name = "wit-bindgen-core" | ||
| version = "0.51.0" | ||
| name = "windows_aarch64_msvc" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "heck", | ||
| "wit-parser", | ||
| ] | ||
| checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" | ||
| [[package]] | ||
| name = "wit-bindgen-rust" | ||
| version = "0.51.0" | ||
| name = "windows_i686_gnu" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "heck", | ||
| "indexmap", | ||
| "prettyplease", | ||
| "syn", | ||
| "wasm-metadata", | ||
| "wit-bindgen-core", | ||
| "wit-component", | ||
| ] | ||
| checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" | ||
| [[package]] | ||
| name = "wit-bindgen-rust-macro" | ||
| version = "0.51.0" | ||
| name = "windows_i686_gnullvm" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "prettyplease", | ||
| "proc-macro2", | ||
| "quote", | ||
| "syn", | ||
| "wit-bindgen-core", | ||
| "wit-bindgen-rust", | ||
| ] | ||
| checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" | ||
| [[package]] | ||
| name = "wit-component" | ||
| version = "0.244.0" | ||
| name = "windows_i686_msvc" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "bitflags", | ||
| "indexmap", | ||
| "log", | ||
| "serde", | ||
| "serde_derive", | ||
| "serde_json", | ||
| "wasm-encoder", | ||
| "wasm-metadata", | ||
| "wasmparser", | ||
| "wit-parser", | ||
| ] | ||
| checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" | ||
| [[package]] | ||
| name = "wit-parser" | ||
| version = "0.244.0" | ||
| name = "windows_x86_64_gnu" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" | ||
| dependencies = [ | ||
| "anyhow", | ||
| "id-arena", | ||
| "indexmap", | ||
| "log", | ||
| "semver", | ||
| "serde", | ||
| "serde_derive", | ||
| "serde_json", | ||
| "unicode-xid", | ||
| "wasmparser", | ||
| ] | ||
| checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" | ||
| [[package]] | ||
| name = "windows_x86_64_gnullvm" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" | ||
| [[package]] | ||
| name = "windows_x86_64_msvc" | ||
| version = "0.52.6" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" | ||
| [[package]] | ||
| name = "wit-bindgen" | ||
| version = "0.46.0" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" | ||
| [[package]] | ||
| name = "xml-rs" | ||
@@ -1301,4 +1261,4 @@ version = "0.8.28" | ||
| name = "zmij" | ||
| version = "1.0.21" | ||
| version = "0.1.8" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" | ||
| checksum = "f1dccf46b25b205e4bebe1d5258a991df1cc17801017a845cb5b3fe0269781aa" |
+12
-3
@@ -16,3 +16,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO | ||
| name = "jiff" | ||
| version = "0.2.28" | ||
| version = "0.2.29" | ||
| authors = ["Andrew Gallant <jamslam@gmail.com>"] | ||
@@ -74,2 +74,3 @@ build = false | ||
| "portable-atomic-util/alloc", | ||
| "defmt?/alloc", | ||
| ] | ||
@@ -85,2 +86,3 @@ default = [ | ||
| ] | ||
| defmt = ["dep:defmt"] | ||
| js = [ | ||
@@ -127,2 +129,6 @@ "dep:wasm-bindgen", | ||
| [dependencies.defmt] | ||
| version = "1.0.0" | ||
| optional = true | ||
| [dependencies.jiff-static] | ||
@@ -182,2 +188,5 @@ version = "0.2" | ||
| [dev-dependencies.tempfile] | ||
| version = "3.27.0" | ||
| [dev-dependencies.time] | ||
@@ -209,3 +218,3 @@ version = "0.3.36" | ||
| [target."cfg(any())".dependencies.jiff-static] | ||
| version = "=0.2.28" | ||
| version = "=0.2.29" | ||
@@ -217,3 +226,3 @@ [target.'cfg(any(windows, target_family = "wasm"))'.dependencies.jiff-tzdb-platform] | ||
| [target.'cfg(not(target_family = "wasm"))'.dev-dependencies.hifitime] | ||
| version = "3.9.0" | ||
| version = "4.3.0" | ||
@@ -220,0 +229,0 @@ [target.'cfg(not(target_has_atomic = "ptr"))'.dependencies.portable-atomic] |
+27
-0
| # CHANGELOG | ||
| 0.2.29 (2026-06-20) | ||
| =================== | ||
| This release adds support for [`defmt`], which is a highly efficient logging | ||
| framework that targets resource-constrained devices, like microcontrollers. | ||
| Enhancements: | ||
| * [#505](https://github.com/BurntSushi/jiff/issues/505): | ||
| Add support for the `defmt` crate by implementing `defmt::Format` on the | ||
| principle public types in Jiff. | ||
| * [#584](https://github.com/BurntSushi/jiff/pull/584): | ||
| Add `Zoned::UNIX_EPOCH` as a constant. | ||
| * [#587](https://github.com/BurntSushi/jiff/pull/587): | ||
| Change the `Debug` output for `civil::ISOWeekDate` to match the `Debug` output | ||
| style of other primitive datetime types. | ||
| Bug fixes: | ||
| * [#525](https://github.com/BurntSushi/jiff/issues/525): | ||
| Fix a bug that prevented time zone lookups when using an on-disk time zone | ||
| database on Windows. | ||
| * [#539](https://github.com/BurntSushi/jiff/issues/539): | ||
| Fix a bug where rendering a datetime in an error message would omit a `T` | ||
| separator. | ||
| 0.2.28 (2026-05-28) | ||
@@ -1553,1 +1579,2 @@ =================== | ||
| [Discussions on GitHub]: https://github.com/BurntSushi/jiff/discussions | ||
| [`defmt`]: https://github.com/BurntSushi/jiff/issues/587 |
+6
-2
@@ -1147,6 +1147,8 @@ # Comparison with other Rust datetime crates | ||
| a positive leap second (a second gets repeated), `hifitime` will correctly | ||
| report the accurate duration: | ||
| report the accurate duration. With that said, to get an accurate duration, one | ||
| of the two time scales has to be converted to to TAI (or another time scale | ||
| which does not have leap seconds): | ||
| ```rust | ||
| use hifitime::{Duration, Epoch}; | ||
| use hifitime::{Duration, Epoch, TimeScale}; | ||
@@ -1156,2 +1158,4 @@ fn main() -> anyhow::Result<()> { | ||
| let e2: Epoch = "2015-07-01T00:00:00 UTC".parse()?; | ||
| let e2 = e2.to_time_scale(TimeScale::TAI); | ||
| let duration = e2 - e1; | ||
@@ -1158,0 +1162,0 @@ assert_eq!(duration, Duration::from_seconds(3_601.0)); |
@@ -155,3 +155,3 @@ use crate::{ | ||
| /// ``` | ||
| #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] | ||
| #[derive(Clone, Copy, Eq, Hash, PartialEq)] | ||
| pub struct ISOWeekDate { | ||
@@ -733,2 +733,8 @@ year: i16, | ||
| impl core::fmt::Debug for ISOWeekDate { | ||
| fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { | ||
| core::fmt::Display::fmt(self, f) | ||
| } | ||
| } | ||
| impl core::fmt::Display for ISOWeekDate { | ||
@@ -800,2 +806,13 @@ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for ISOWeekDate { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| use crate::fmt::DefmtWrite; | ||
| defmt::unwrap!( | ||
| DEFAULT_DATETIME_PRINTER.print_iso_week_date(self, DefmtWrite(f)) | ||
| ); | ||
| } | ||
| } | ||
| #[cfg(feature = "serde")] | ||
@@ -802,0 +819,0 @@ impl serde_core::Serialize for ISOWeekDate { |
+1
-0
@@ -133,2 +133,3 @@ /*! | ||
| #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub enum Era { | ||
@@ -135,0 +136,0 @@ /// The "before common era" era. |
@@ -84,2 +84,3 @@ use crate::{error::Error, shared::util::itime::IWeekday, util::b}; | ||
| #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| #[repr(u8)] | ||
@@ -86,0 +87,0 @@ #[allow(missing_docs)] |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ FailedAddDays, |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ FailedNegateUnsignedDuration, |
| use crate::{error, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ Empty, |
@@ -12,2 +12,3 @@ use crate::{error, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -14,0 +15,0 @@ HybridDurationEmpty, |
| use crate::{error, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ColonAfterHours, |
| use crate::{civil::Weekday, error, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ CommentClosingParenWithoutOpen, |
| use crate::{error, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ EndOfInputAnnotation, |
| use crate::{civil::Weekday, error, tz::Offset, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -253,2 +254,3 @@ ColonCount { | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum ParseError { | ||
@@ -463,2 +465,3 @@ ExpectedAmPm, | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum FormatError { | ||
@@ -465,0 +468,0 @@ RequiresDate, |
| use crate::{error, tz::Offset, util::escape}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ #[cfg(not(feature = "alloc"))] |
| use crate::{error, Unit}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ConversionToSecondsFailed { unit: Unit }, |
+45
-0
@@ -397,5 +397,28 @@ use crate::util::{ | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for Error { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| let Some(ref inner) = self.inner else { | ||
| return defmt::write!(f, "Error {{ kind: None }}"); | ||
| }; | ||
| #[cfg(feature = "alloc")] | ||
| { | ||
| defmt::write!( | ||
| f, | ||
| "Error {{ kind: {}, cause: {} }}", | ||
| inner.kind, | ||
| inner.cause | ||
| ); | ||
| } | ||
| #[cfg(not(feature = "alloc"))] | ||
| { | ||
| defmt::write!(f, "Error {{ kind: {} }}", inner.kind); | ||
| } | ||
| } | ||
| } | ||
| /// The underlying kind of a [`Error`]. | ||
| #[derive(Debug)] | ||
| #[cfg_attr(not(feature = "alloc"), derive(Clone))] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum ErrorKind { | ||
@@ -516,2 +539,3 @@ Adhoc(AdhocError), | ||
| #[cfg_attr(not(feature = "alloc"), derive(Clone))] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| struct AdhocError { | ||
@@ -564,2 +588,3 @@ #[cfg(feature = "alloc")] | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum CrateFeatureError { | ||
@@ -649,2 +674,12 @@ #[cfg(not(feature = "tz-system"))] | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for IOError { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| // `std::io::Error` does not implement `defmt::Format`. Since this | ||
| // error is std-only and defmt is mainly used in embedded contexts, | ||
| // omitting the error is probably fine. | ||
| defmt::write!(f, "IOError(unavailable)"); | ||
| } | ||
| } | ||
| #[cfg(feature = "std")] | ||
@@ -692,2 +727,12 @@ impl From<std::io::Error> for IOError { | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for FilePathError { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| // `std::path::PathBuf` does not implement `defmt::Format`. Since this | ||
| // error is std-only and defmt is mainly used in embedded contexts, | ||
| // omitting the path is probably fine. | ||
| defmt::write!(f, "FilePathError(unavailable)"); | ||
| } | ||
| } | ||
| /// A simple trait to encapsulate automatic conversion to `Error`. | ||
@@ -694,0 +739,0 @@ /// |
| use crate::{error, Unit}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ConvertNonFinite, |
| use crate::{error, Unit}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ConvertDateTimeToTimestamp, |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ OverflowAddDuration, |
@@ -7,2 +7,3 @@ use crate::{ | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -9,0 +10,0 @@ BecauseFold { before: Offset, after: Offset }, |
@@ -10,2 +10,3 @@ use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -12,0 +13,0 @@ AllocRequestOverLimit, |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ #[cfg(feature = "tzdb-concatenated")] |
@@ -7,2 +7,3 @@ use crate::{ | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -9,0 +10,0 @@ ConvertDateTimeToTimestamp { |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ColonPrefixInvalidUtf8, |
@@ -9,2 +9,3 @@ #[cfg(not(feature = "tz-system"))] | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error {} | ||
@@ -24,2 +25,3 @@ | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -26,0 +28,0 @@ FailedEnvTz, |
| use crate::error; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ ConvertNonFixed { |
@@ -1,9 +0,10 @@ | ||
| #[cfg(not(test))] | ||
| #[cfg(any(not(test), not(feature = "alloc")))] | ||
| pub(crate) use self::disabled::*; | ||
| #[cfg(test)] | ||
| #[cfg(all(test, feature = "alloc"))] | ||
| pub(crate) use self::enabled::*; | ||
| #[cfg(not(test))] | ||
| #[cfg(any(not(test), not(feature = "alloc")))] | ||
| mod disabled { | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error {} | ||
@@ -18,3 +19,3 @@ | ||
| #[cfg(test)] | ||
| #[cfg(all(test, feature = "alloc"))] | ||
| mod enabled { | ||
@@ -33,2 +34,3 @@ use alloc::boxed::Box; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -35,0 +37,0 @@ DuplicateLink { name: Box<str> }, |
| use crate::{error, util::b, Unit}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum UnitConfigError { | ||
@@ -126,2 +127,3 @@ CalendarUnitsNotAllowed { unit: Unit }, | ||
| #[derive(Clone, Copy, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum MustDivide { | ||
@@ -128,0 +130,0 @@ NanosPerCivilDay, |
+12
-0
| use crate::{error, util::escape::Byte}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum RoundingIncrementError { | ||
@@ -45,2 +46,3 @@ ForDateTime, | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum ParseIntError { | ||
@@ -83,2 +85,3 @@ NoDigitsFound, | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum ParseFractionError { | ||
@@ -183,1 +186,10 @@ NoDigitsFound, | ||
| } | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for OsStrUtf8Error { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| // `OsStr` does not implement `defmt::Format`. Since this error is std-only | ||
| // and defmt is mainly used in embedded contexts, omitting the value is fine. | ||
| defmt::write!(f, "OsStrUtf8Error(unavailable)"); | ||
| } | ||
| } |
| use crate::{error, Unit}; | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum Error { | ||
@@ -5,0 +6,0 @@ AddDateTime, |
+29
-1
@@ -718,3 +718,9 @@ use core::mem::MaybeUninit; | ||
| ) -> BorrowedWriter<'buffer, 'data, 'write> { | ||
| assert!(bbuf.capacity() >= BROAD_MINIMUM_BUFFER_LEN); | ||
| assert!( | ||
| bbuf.capacity() >= BROAD_MINIMUM_BUFFER_LEN, | ||
| "capacity ({capacity}) must be \ | ||
| at least {BROAD_MINIMUM_BUFFER_LEN} \ | ||
| to handle integer formatting", | ||
| capacity = bbuf.capacity(), | ||
| ); | ||
| BorrowedWriter { bbuf, wtr } | ||
@@ -779,2 +785,24 @@ } | ||
| #[cfg_attr(feature = "perf-inline", inline(always))] | ||
| pub(crate) fn write_int( | ||
| &mut self, | ||
| n: impl Into<u64>, | ||
| ) -> Result<(), Error> { | ||
| let n = n.into(); | ||
| self.if_will_fill_then_flush(digits(n))?; | ||
| self.bbuf.write_int(n); | ||
| Ok(()) | ||
| } | ||
| #[cfg_attr(feature = "perf-inline", inline(always))] | ||
| pub(crate) fn write_int1( | ||
| &mut self, | ||
| n: impl Into<u64>, | ||
| ) -> Result<(), Error> { | ||
| let n = n.into(); | ||
| self.if_will_fill_then_flush(1usize)?; | ||
| self.bbuf.write_int1(n); | ||
| Ok(()) | ||
| } | ||
| #[cfg_attr(feature = "perf-inline", inline(always))] | ||
| pub(crate) fn write_int_pad( | ||
@@ -781,0 +809,0 @@ &mut self, |
+55
-0
@@ -471,1 +471,56 @@ /*! | ||
| } | ||
| /// An adapter for writing Jiff's formatted output to a | ||
| /// [`defmt`] formatter. | ||
| /// | ||
| /// This is used by Jiff's [`defmt::Format`] trait implementations to share the | ||
| /// same printer code used for [`core::fmt`] output. | ||
| /// | ||
| /// # Example | ||
| /// | ||
| /// This example shows the [`defmt::Format`] trait implementation for | ||
| /// [`civil::DateTime`](crate::civil::DateTime) (but using a wrapper type). | ||
| /// | ||
| /// ``` | ||
| /// use jiff::{ | ||
| /// civil::DateTime, | ||
| /// fmt::{temporal::DateTimePrinter, DefmtWrite}, | ||
| /// }; | ||
| /// | ||
| /// struct MyDateTime(DateTime); | ||
| /// | ||
| /// impl defmt::Format for MyDateTime { | ||
| /// fn format(&self, f: defmt::Formatter) { | ||
| /// static P: DateTimePrinter = DateTimePrinter::new(); | ||
| /// defmt::unwrap!(P.print_datetime(&self.0, DefmtWrite(f))); | ||
| /// } | ||
| /// } | ||
| /// ``` | ||
| #[cfg(feature = "defmt")] | ||
| #[derive(defmt::Format)] | ||
| pub struct DefmtWrite<'a>(pub defmt::Formatter<'a>); | ||
| #[cfg(feature = "defmt")] | ||
| impl<'a> core::fmt::Debug for DefmtWrite<'a> { | ||
| fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { | ||
| f.debug_struct("DefmtWrite").finish() | ||
| } | ||
| } | ||
| #[cfg(feature = "defmt")] | ||
| impl<'a> core::fmt::Write for DefmtWrite<'a> { | ||
| #[inline] | ||
| fn write_str(&mut self, string: &str) -> Result<(), core::fmt::Error> { | ||
| defmt::write!(self.0, "{=str}", string); | ||
| Ok(()) | ||
| } | ||
| } | ||
| #[cfg(feature = "defmt")] | ||
| impl<'a> Write for DefmtWrite<'a> { | ||
| #[inline] | ||
| fn write_str(&mut self, string: &str) -> Result<(), Error> { | ||
| defmt::write!(self.0, "{=str}", string); | ||
| Ok(()) | ||
| } | ||
| } |
+8
-0
@@ -632,2 +632,9 @@ /*! | ||
| [Platform support](crate::_documentation::platform) for more details. | ||
| * **defmt** - | ||
| When enabled, Jiff will implement the [`defmt::Format`] trait for many | ||
| of its types. This is useful for embedded environments where the usual | ||
| `core::fmt` machinery is not practical to use. Note that, at time of writing | ||
| (2026-06-12), not all public types in this crate implement [`defmt::Format`]. | ||
| If there are types for which you need `defmt` support but don't have it in | ||
| Jiff, then please [open a new issue][issue-new]. | ||
@@ -690,2 +697,3 @@ ### Time zone features | ||
| [Concatenated Time Zone Database]: https://android.googlesource.com/platform/libcore/+/jb-mr2-release/luni/src/main/java/libcore/util/ZoneInfoDB.java | ||
| [issue-new]: https://github.com/BurntSushi/jiff/issues/new | ||
| */ | ||
@@ -692,0 +700,0 @@ |
@@ -74,2 +74,5 @@ /*! | ||
| removed. Nesting isn't supported. | ||
| * All `#[cfg(feature = "defmt")]` annotations and gated items are removed. The | ||
| `jiff-static` proc macro only needs these types internally for parsing and | ||
| code generation. | ||
@@ -76,0 +79,0 @@ Otherwise, this module is specifically organized in a way that doesn't rely on |
+12
-0
@@ -937,2 +937,3 @@ use alloc::{string::String, vec}; | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) struct TzifError { | ||
@@ -943,2 +944,3 @@ kind: TzifErrorKind, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum TzifErrorKind { | ||
@@ -1016,2 +1018,3 @@ Footer(FooterError), | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum TransitionTypeError { | ||
@@ -1049,2 +1052,3 @@ ExceedsLocalTimeTypes, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum LocalTimeTypeError { | ||
@@ -1084,2 +1088,3 @@ InvalidOffset { offset: i32 }, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum TimeZoneDesignatorError { | ||
@@ -1135,2 +1140,3 @@ InvalidEnd, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum IndicatorError { | ||
@@ -1184,2 +1190,3 @@ InvalidCombination, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum InconsistentPosixTimeZoneError { | ||
@@ -1222,2 +1229,3 @@ Designation, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum FooterError { | ||
@@ -1265,2 +1273,3 @@ InvalidPosixTz(crate::shared::posix::PosixTimeZoneError), | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum HeaderError { | ||
@@ -1328,2 +1337,3 @@ InvalidDataBlock { version: u8 }, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| enum CountKind { | ||
@@ -1353,2 +1363,3 @@ Ut, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum SplitAtError { | ||
@@ -1392,2 +1403,3 @@ V1, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| struct U32UsizeError; | ||
@@ -1394,0 +1406,0 @@ |
@@ -51,3 +51,3 @@ /// A simple and not the most-efficient fixed size string on the stack. | ||
| /// Returns the capacity of this array string. | ||
| pub(crate) fn capacity() -> usize { | ||
| pub(crate) const fn capacity() -> usize { | ||
| N | ||
@@ -141,2 +141,9 @@ } | ||
| #[cfg(feature = "defmt")] | ||
| impl<const N: usize> defmt::Format for ArrayStr<N> { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| defmt::write!(f, "{=str}", self.as_str()) | ||
| } | ||
| } | ||
| impl<const N: usize> AsRef<str> for ArrayStr<N> { | ||
@@ -143,0 +150,0 @@ fn as_ref(&self) -> &str { |
@@ -682,2 +682,3 @@ /*! | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum RangeError { | ||
@@ -684,0 +685,0 @@ DateInvalidDayOfYear { year: i16 }, |
@@ -74,2 +74,3 @@ use crate::{ | ||
| #[derive(Clone, Copy, Debug, Default)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| #[non_exhaustive] | ||
@@ -154,2 +155,3 @@ pub enum Disambiguation { | ||
| #[derive(Clone, Copy, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub enum AmbiguousOffset { | ||
@@ -300,2 +302,3 @@ /// The offset for a particular civil datetime and time zone is | ||
| #[derive(Clone, Copy, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub struct AmbiguousTimestamp { | ||
@@ -816,2 +819,3 @@ dt: DateTime, | ||
| #[derive(Clone, Debug, Eq, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub struct AmbiguousZoned { | ||
@@ -818,0 +822,0 @@ ts: AmbiguousTimestamp, |
+12
-0
@@ -581,2 +581,12 @@ use crate::{ | ||
| #[cfg(feature = "defmt")] | ||
| impl defmt::Format for TimeZoneDatabase { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| // `Kind` doesn't implement `defmt::Format`, so we only emit the type | ||
| // name. On embedded targets the database is usually bundled or unused, | ||
| // so the internal backend probably isn't meaningful to log either way. | ||
| defmt::write!(f, "TimeZoneDatabase(unavailable)"); | ||
| } | ||
| } | ||
| /// An iterator over the time zone identifiers in a [`TimeZoneDatabase`]. | ||
@@ -592,2 +602,3 @@ /// | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub struct TimeZoneNameIter<'d> { | ||
@@ -640,2 +651,3 @@ #[cfg(feature = "alloc")] | ||
| #[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub struct TimeZoneName<'d> { | ||
@@ -642,0 +654,0 @@ /// The lifetime of the tzdb. |
@@ -1,6 +0,2 @@ | ||
| use alloc::{ | ||
| string::{String, ToString}, | ||
| vec, | ||
| vec::Vec, | ||
| }; | ||
| use alloc::{string::String, vec, vec::Vec}; | ||
@@ -11,3 +7,3 @@ use std::{ | ||
| io::Read, | ||
| path::{Path, PathBuf}, | ||
| path::{Component, Path, PathBuf}, | ||
| sync::{ | ||
@@ -563,3 +559,3 @@ atomic::{AtomicUsize, Ordering}, | ||
| let full = base.join(time_zone_name); | ||
| let original = parse::os_str_utf8(time_zone_name.as_os_str()) | ||
| let original = iana_name_from_path(time_zone_name) | ||
| .map_err(|err| Error::from(err).path(base))?; | ||
@@ -569,3 +565,3 @@ let lower = original.to_ascii_lowercase(); | ||
| full, | ||
| original: original.to_string(), | ||
| original, | ||
| lower, | ||
@@ -665,2 +661,17 @@ validity: AtomicUsize::new(ZONE_INFO_NAME_UNKNOWN), | ||
| fn iana_name_from_path( | ||
| path: &Path, | ||
| ) -> Result<String, crate::error::util::OsStrUtf8Error> { | ||
| let mut name = String::new(); | ||
| for component in path.components() { | ||
| let Component::Normal(part) = component else { continue }; | ||
| let part = parse::os_str_utf8(part)?; | ||
| if !name.is_empty() { | ||
| name.push('/'); | ||
| } | ||
| name.push_str(part); | ||
| } | ||
| Ok(name) | ||
| } | ||
| impl Eq for ZoneInfoName {} | ||
@@ -839,6 +850,42 @@ | ||
| #[cfg(test)] | ||
| #[cfg(all( | ||
| test, | ||
| not(miri), | ||
| not(target_arch = "wasm32"), | ||
| not(target_arch = "wasm64"), | ||
| ))] | ||
| mod tests { | ||
| use super::*; | ||
| fn mktempdir() -> tempfile::TempDir { | ||
| tempfile::TempDir::with_prefix("jiff-zoneinfo-").unwrap() | ||
| } | ||
| #[test] | ||
| fn iana_name_always_uses_slashes() { | ||
| let name = ZoneInfoName::new( | ||
| Path::new("/"), | ||
| &Path::new("Asia").join("Tokyo"), | ||
| ) | ||
| .unwrap(); | ||
| assert_eq!("Asia/Tokyo", name.original()); | ||
| } | ||
| #[test] | ||
| fn from_dir_uses_iana_name_separators() { | ||
| let tmpdir = mktempdir(); | ||
| let zoneinfo = tmpdir.path().join("zoneinfo"); | ||
| let asia = zoneinfo.join("Asia"); | ||
| std::fs::create_dir_all(&asia).unwrap(); | ||
| std::fs::write( | ||
| asia.join("Tokyo"), | ||
| crate::tz::testdata::TzifTestFile::get("Asia/Tokyo").data, | ||
| ) | ||
| .unwrap(); | ||
| let db = Database::from_dir(&zoneinfo).unwrap(); | ||
| assert!(db.get("Asia/Tokyo").is_some()); | ||
| assert!(db.get(r"Asia\Tokyo").is_none()); | ||
| } | ||
| /// DEBUG COMMAND | ||
@@ -845,0 +892,0 @@ /// |
+1
-1
@@ -151,3 +151,3 @@ /*! | ||
| // See module comment for WIP status. :-( | ||
| #[cfg(test)] | ||
| #[cfg(all(test, feature = "alloc"))] | ||
| mod zic; | ||
@@ -154,0 +154,0 @@ |
+20
-2
@@ -76,3 +76,3 @@ /*! | ||
| error::{tz::posix::Error as E, Error, ErrorContext}, | ||
| shared, | ||
| fmt, shared, | ||
| timestamp::Timestamp, | ||
@@ -255,2 +255,10 @@ tz::{ | ||
| impl<ABBREV: AsRef<str>> PosixTimeZone<ABBREV> { | ||
| /// Returns the underlying "shared" type. (The type shared between `jiff` | ||
| /// and `jiff-static`.) | ||
| pub(crate) fn shared(&self) -> &shared::PosixTimeZone<ABBREV> { | ||
| &self.inner | ||
| } | ||
| } | ||
| impl<ABBREV: AsRef<str> + Debug> PosixTimeZone<ABBREV> { | ||
@@ -334,6 +342,16 @@ /// Returns the appropriate time zone offset to use for the given | ||
| fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { | ||
| core::fmt::Display::fmt(&self.inner, f) | ||
| fmt::temporal::DateTimePrinter::new() | ||
| .print_posix_time_zone(self.shared(), fmt::StdFmtWrite(f)) | ||
| .map_err(|_| core::fmt::Error) | ||
| } | ||
| } | ||
| #[cfg(feature = "defmt")] | ||
| impl<ABBREV: AsRef<str>> defmt::Format for PosixTimeZone<ABBREV> { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| defmt::unwrap!(fmt::temporal::DateTimePrinter::new() | ||
| .print_posix_time_zone(self.shared(), fmt::DefmtWrite(f))) | ||
| } | ||
| } | ||
| // The tests below require parsing which requires alloc. | ||
@@ -340,0 +358,0 @@ #[cfg(feature = "alloc")] |
@@ -80,2 +80,7 @@ #[cfg(not(miri))] | ||
| }, | ||
| // Just another random test file. | ||
| TzifTestFile { | ||
| name: "Asia/Tokyo", | ||
| data: include_bytes!("testdata/asia-tokyo.tzif"), | ||
| }, | ||
| TzifTestFile { name: "UTC", data: include_bytes!("testdata/utc.tzif") }, | ||
@@ -82,0 +87,0 @@ ]; |
+19
-0
@@ -153,2 +153,3 @@ /*! | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum BoundsError { | ||
@@ -706,2 +707,19 @@ $($name(RawBoundsError<$name>),)* | ||
| #[cfg(feature = "defmt")] | ||
| impl<B, P> defmt::Format for RawBoundsError<B> | ||
| where | ||
| B: Bounds<Primitive = P>, | ||
| P: defmt::Format, | ||
| { | ||
| fn format(&self, f: defmt::Formatter) { | ||
| defmt::write!( | ||
| f, | ||
| "RawBoundsError {{ what: {=str}, min: {}, max: {} }}", | ||
| B::WHAT, | ||
| B::MIN, | ||
| B::MAX | ||
| ); | ||
| } | ||
| } | ||
| /// Like `BoundsError`, but maintained manually. | ||
@@ -711,2 +729,3 @@ /// | ||
| #[derive(Clone, Debug)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub(crate) enum SpecialBoundsError { | ||
@@ -713,0 +732,0 @@ UnixNanoseconds, |
@@ -294,2 +294,3 @@ use crate::{ | ||
| #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] | ||
| #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| pub enum RoundMode { | ||
@@ -296,0 +297,0 @@ /// Rounds toward positive infinity. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display