Add relative timestamps using `jiff` and `icu_relativetime`
Dependencies
- [2]
HHJDRLLNCreate `fluent_embed_runtime` crate - [3]
O77KA6C4Create `fluent_embed` crate - [4]
JZXXFWQKAdd tests for `locale_select` backends on unix - [5]
ROSR4HD5Parse captured glob as locale - [6]
VNSHGQYNSupport using glob paths in `localize` macro - [7]
56F2YE6HUse `prettyplease` to format macro output - [8]
VZYZRAO4Move `output-macros` crate into workspace - [9]
YNEOCYMGCreate `locale-select` crate - [10]
HCGVXOF7Add language negotiation using `fluent-langneg` - [11]
WBI5HFOBAdd simple wrapper for `libc::settext()` to query system locale - [12]
V5S5K33AAdd basic error handling for invalid paths in proc_macro attribute - [13]
RLX6XPNZReturn an error when user provides an exact path - [14]
F5LG7WENEmit compilation errors from Fluent source code - [15]
UKFEFT6LCreate basic `Output` proc-macro - [16]
NO3PDO7PRefactor `fluent_embed` to support structs - [17]
SHNZZSZGCreate `cli_macros` shim crate
Change contents
- replacement in locale_select/Cargo.toml at line 11
icu_locid = "1.4.0"icu_locid = "1.5.0" - file addition: time.rs[2.49]
use fixed_decimal::{FixedDecimal, FloatPrecision};use icu_experimental::relativetime::{options::Numeric, RelativeTimeFormatter, RelativeTimeFormatterOptions,};use icu_locid::{langid, LanguageIdentifier};use icu_provider::DataLocale;use jiff::{tz::TimeZone, SpanRound, Timestamp, Unit};/// Allow the formatter to use non-numeric output (e.g. "tomorrow", "yesterday")const FORMATTER_OPTIONS: RelativeTimeFormatterOptions = RelativeTimeFormatterOptions {numeric: Numeric::Auto,};/// The locale to fall back topub const DEFAULT_LOCALE: LanguageIdentifier = langid!("en-US");/// A time relative to the system clock (either past or future)pub struct RelativeTime(Timestamp);impl RelativeTime {pub fn new(timestamp: Timestamp) -> Self {Self(timestamp)}}impl crate::Localize for RelativeTime {const CANONICAL_LOCALE: LanguageIdentifier = DEFAULT_LOCALE;fn localize(&self) -> String {// Get the current timelet current_timestamp = Timestamp::now();let current_datetime = current_timestamp.to_zoned(TimeZone::UTC).datetime();// Calculate the difference, rounded to the largest unitlet unformatted_span = current_timestamp.since(self.0).unwrap()// Make sure the span is rounded to the largest available unit.round(SpanRound::new().largest(Unit::Year).relative(current_datetime),).unwrap();// Find the largest "component": year, month, week etclet units: [(Unit, i64); 7] = [(Unit::Year, unformatted_span.get_years() as i64),(Unit::Month, unformatted_span.get_months() as i64),(Unit::Week, unformatted_span.get_weeks() as i64),(Unit::Day, unformatted_span.get_days() as i64),(Unit::Hour, unformatted_span.get_hours() as i64),(Unit::Minute, unformatted_span.get_minutes()),(Unit::Second, unformatted_span.get_seconds()),];// Use the largest non-zero unitlet selected_unit = units.iter().find(|(_unit, value)| value.abs() > 0).map(|(unit, _value)| *unit).unwrap_or(Unit::Second);// Round the span to that selected unitlet rounding_options = SpanRound::new().smallest(selected_unit).largest(selected_unit).relative(current_datetime);let formatted_span = current_timestamp.since(self.0).unwrap().round(rounding_options).unwrap();// We can finally get the actual rounded valuelet selected_value = match selected_unit {Unit::Year => formatted_span.get_years() as i64,Unit::Month => formatted_span.get_months() as i64,Unit::Week => formatted_span.get_weeks() as i64,Unit::Day => formatted_span.get_days() as i64,Unit::Hour => formatted_span.get_hours() as i64,Unit::Minute => formatted_span.get_minutes(),Unit::Second => formatted_span.get_seconds(),_ => unreachable!(),};// Select which formatter to uselet locale = DataLocale::from(&Self::CANONICAL_LOCALE);let formatter = match selected_unit {Unit::Year => RelativeTimeFormatter::try_new_long_year(&locale, FORMATTER_OPTIONS),Unit::Month => RelativeTimeFormatter::try_new_long_month(&locale, FORMATTER_OPTIONS),Unit::Week => RelativeTimeFormatter::try_new_long_week(&locale, FORMATTER_OPTIONS),Unit::Day => RelativeTimeFormatter::try_new_long_day(&locale, FORMATTER_OPTIONS),Unit::Hour => RelativeTimeFormatter::try_new_long_hour(&locale, FORMATTER_OPTIONS),Unit::Minute => RelativeTimeFormatter::try_new_long_minute(&locale, FORMATTER_OPTIONS),Unit::Second => RelativeTimeFormatter::try_new_long_second(&locale, FORMATTER_OPTIONS),_ => unreachable!(),}.unwrap();let decimal =FixedDecimal::try_from_f64(selected_value as f64, FloatPrecision::Integer).unwrap();formatter.format(decimal).to_string()}} - edit in fluent_embed_runtime/src/lib.rs at line 8
pub mod time; - replacement in fluent_embed_runtime/Cargo.toml at line 10
icu_locid = "1.4.0"icu_plurals = "1.4.0"icu_provider = "1.4.0"fixed_decimal = { version = "0.5.6", features = ["ryu"] }icu_experimental = "0.1.0"icu_locid = "1.5.0"icu_plurals = "1.5.0"icu_provider = "1.5.0"jiff = { version = "0.1.2", default-features = false, features = ["std"] } - replacement in fluent_embed/Cargo.toml at line 12
icu_locid = "1.4.0"icu_locid = "1.5.0" - replacement in Cargo.lock at line 22
version = "1.1.2"version = "1.1.3" - replacement in Cargo.lock at line 24
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" - edit in Cargo.lock at line 30
name = "autocfg"version = "1.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"[[package]] - replacement in Cargo.lock at line 73
version = "1.0.101"version = "1.1.1" - replacement in Cargo.lock at line 75
checksum = "ac367972e516d45567c7eafc73d24e1c193dcf200a8d94e9db7b3d38b349572d"checksum = "907d8581360765417f8f2e0e7d602733bbed60156b4465b7617243689ef9b83d" - replacement in Cargo.lock at line 93
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 119
version = "0.2.4"version = "0.2.5" - replacement in Cargo.lock at line 121
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" - replacement in Cargo.lock at line 125
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 146
version = "0.5.5"version = "0.5.6" - replacement in Cargo.lock at line 148
checksum = "cbc7fdec9d7f6671a3ebb3282c969962aba67c49f6abac5311959b65cafabc10"checksum = "0febbeb1118a9ecdee6e4520ead6b54882e843dd0592ad233247dbee84c53db8" - edit in Cargo.lock at line 151
"ryu", - replacement in Cargo.lock at line 158
version = "0.14.0"version = "0.14.1" - replacement in Cargo.lock at line 160
checksum = "0a56f2b85e609878e71a22e16b2a8c5b9de24c3d5a1c780536f3800a6a114b07"checksum = "e7b2da3cb6583f7e5f98d3e0e1f9ff70451398037445c8e89a0dc51594cf1736" - replacement in Cargo.lock at line 186
"syn 2.0.48","syn 2.0.71", - edit in Cargo.lock at line 195
"fixed_decimal","icu_experimental", - edit in Cargo.lock at line 200
"jiff", - edit in Cargo.lock at line 237
][[package]]name = "icu_collections"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"dependencies = ["displaydoc","yoke","zerofrom","zerovec",][[package]]name = "icu_decimal"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "fb8fd98f86ec0448d85e1edf8884e4e318bb2e121bd733ec929a05c0a5e8b0eb"dependencies = ["displaydoc","fixed_decimal","icu_decimal_data","icu_locid_transform","icu_provider","writeable", - edit in Cargo.lock at line 266
name = "icu_decimal_data"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8d424c994071c6f5644f999925fc868c85fec82295326e75ad5017bc94b41523"[[package]]name = "icu_experimental"version = "0.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7"dependencies = ["displaydoc","fixed_decimal","icu_collections","icu_decimal","icu_experimental_data","icu_locid","icu_locid_transform","icu_normalizer","icu_pattern","icu_plurals","icu_properties","icu_provider","litemap","num-bigint","num-rational","num-traits","smallvec","tinystr","writeable","zerofrom","zerotrie","zerovec",][[package]]name = "icu_experimental_data"version = "0.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9c178b9a34083fca5bd70d61f647575335e9c197d0f30c38e8ccd187babc69d0"[[package]] - replacement in Cargo.lock at line 309
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 311
checksum = "5c0aa2536adc14c07e2a521e95512b75ed8ef832f0fdf9299d4a0a45d2be2a9d"checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" - replacement in Cargo.lock at line 322
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 324
checksum = "57c17d8f6524fdca4471101dd71f0a132eb6382b5d6d7f2970441cb25f6f435a"checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" - replacement in Cargo.lock at line 336
version = "1.4.0"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"[[package]]name = "icu_normalizer"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"dependencies = ["displaydoc","icu_collections","icu_normalizer_data","icu_properties","icu_provider","smallvec","utf16_iter","utf8_iter","write16","zerovec",][[package]]name = "icu_normalizer_data"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"[[package]]name = "icu_pattern"version = "0.2.0" - replacement in Cargo.lock at line 368
checksum = "545c6c3e8bf9580e2dafee8de6f9ec14826aaf359787789c7724f1f85f47d3dc"checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4"dependencies = ["displaydoc","either","writeable","yoke","zerofrom",] - replacement in Cargo.lock at line 379
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 381
checksum = "37d807b123eb2a9ae8f12080fb8cce479f5c8a761fba0bb5ab52da6dd5e31a03"checksum = "ba5a70e7c025dbd5c501b0a5c188cd11666a424f0dadcd4f0a95b7dafde3b114" - edit in Cargo.lock at line 385
"icu_locid", - replacement in Cargo.lock at line 393
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 395
checksum = "c3acd5f1f2f988ed2dae9316c3d3560dfe4e03a7516d142b4b89b92252ada41a"checksum = "9e3e8f775b215d45838814a090a2227247a7431d74e9156407d9c37f6ef0f208"[[package]]name = "icu_properties"version = "1.5.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"dependencies = ["displaydoc","icu_collections","icu_locid_transform","icu_properties_data","icu_provider","tinystr","zerovec",][[package]]name = "icu_properties_data"version = "1.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - replacement in Cargo.lock at line 420
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 422
checksum = "ba58e782287eb6950247abbf11719f83f5d4e4a5c1f2cd490d30a334bc47c2f4"checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" - replacement in Cargo.lock at line 437
version = "1.4.0"version = "1.5.0" - replacement in Cargo.lock at line 439
checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" - replacement in Cargo.lock at line 443
"syn 2.0.48","syn 2.0.71", - edit in Cargo.lock at line 460
[[package]]name = "jiff"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "0c33f2189d126c374d29641af39a0dc73daa1c8292403645575ce32e22e768a4" - replacement in Cargo.lock at line 475
version = "0.2.153"version = "0.2.155" - replacement in Cargo.lock at line 477
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - replacement in Cargo.lock at line 487
version = "0.7.2"version = "0.7.3" - replacement in Cargo.lock at line 489
checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da"checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - replacement in Cargo.lock at line 525
version = "2.7.1"version = "2.7.4" - replacement in Cargo.lock at line 527
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - replacement in Cargo.lock at line 557
"syn 2.0.48","syn 2.0.71", - edit in Cargo.lock at line 583
][[package]]name = "num-bigint"version = "0.4.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"dependencies = ["num-integer","num-traits",][[package]]name = "num-integer"version = "0.1.46"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"dependencies = ["num-traits",][[package]]name = "num-rational"version = "0.4.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"dependencies = ["num-bigint","num-integer","num-traits",][[package]]name = "num-traits"version = "0.2.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"dependencies = ["autocfg", - replacement in Cargo.lock at line 655
version = "0.36.0"version = "0.36.1" - replacement in Cargo.lock at line 657
checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434"checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" - replacement in Cargo.lock at line 668
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 688
version = "0.2.16"version = "0.2.20" - replacement in Cargo.lock at line 690
checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" - replacement in Cargo.lock at line 693
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 722
version = "1.0.78"version = "1.0.86" - replacement in Cargo.lock at line 724
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" - replacement in Cargo.lock at line 731
version = "1.0.35"version = "1.0.36" - replacement in Cargo.lock at line 733
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" - replacement in Cargo.lock at line 740
version = "1.10.3"version = "1.10.5" - replacement in Cargo.lock at line 742
checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" - replacement in Cargo.lock at line 752
version = "0.4.5"version = "0.4.7" - replacement in Cargo.lock at line 754
checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" - replacement in Cargo.lock at line 763
version = "0.8.2"version = "0.8.4" - replacement in Cargo.lock at line 765
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - edit in Cargo.lock at line 785
[[package]]name = "ryu"version = "1.0.18"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - replacement in Cargo.lock at line 803
version = "1.0.196"version = "1.0.204" - replacement in Cargo.lock at line 805
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" - replacement in Cargo.lock at line 812
version = "1.0.196"version = "1.0.204" - replacement in Cargo.lock at line 814
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" - replacement in Cargo.lock at line 818
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 872
version = "2.0.48"version = "2.0.71" - replacement in Cargo.lock at line 874
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" - replacement in Cargo.lock at line 889
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 921
version = "1.0.61"version = "1.0.62" - replacement in Cargo.lock at line 923
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" - replacement in Cargo.lock at line 930
version = "1.0.61"version = "1.0.62" - replacement in Cargo.lock at line 932
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" - replacement in Cargo.lock at line 936
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 941
version = "0.7.5"version = "0.7.6" - replacement in Cargo.lock at line 943
checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" - replacement in Cargo.lock at line 963
version = "1.10.1"version = "1.11.0" - replacement in Cargo.lock at line 965
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - edit in Cargo.lock at line 978
[[package]]name = "utf16_iter"version = "1.0.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"[[package]]name = "utf8_iter"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - edit in Cargo.lock at line 1190
[[package]]name = "write16"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - replacement in Cargo.lock at line 1199
version = "0.5.4"version = "0.5.5" - replacement in Cargo.lock at line 1201
checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e"checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"dependencies = ["either",] - replacement in Cargo.lock at line 1208
version = "0.7.3"version = "0.7.4" - replacement in Cargo.lock at line 1210
checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4"checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" - replacement in Cargo.lock at line 1220
version = "0.7.3"version = "0.7.4" - replacement in Cargo.lock at line 1222
checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" - replacement in Cargo.lock at line 1226
"syn 2.0.48","syn 2.0.71", - replacement in Cargo.lock at line 1232
version = "0.1.3"version = "0.1.4" - replacement in Cargo.lock at line 1234
checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" - replacement in Cargo.lock at line 1241
version = "0.1.3"version = "0.1.4" - replacement in Cargo.lock at line 1243
checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" - replacement in Cargo.lock at line 1247
"syn 2.0.48","syn 2.0.71", - edit in Cargo.lock at line 1249
][[package]]name = "zerotrie"version = "0.1.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f"dependencies = ["displaydoc","yoke","zerofrom", - replacement in Cargo.lock at line 1264
version = "0.10.1"version = "0.10.4" - replacement in Cargo.lock at line 1266
checksum = "eff4439ae91fb5c72b8abc12f3f2dbf51bd27e6eadb9f8a5bc8898dddb0e27ea"checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" - replacement in Cargo.lock at line 1275
version = "0.10.1"version = "0.10.3" - replacement in Cargo.lock at line 1277
checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" - replacement in Cargo.lock at line 1281
"syn 2.0.48","syn 2.0.71",