diff --git a/.cargo/config b/.cargo/config.toml similarity index 100% rename from .cargo/config rename to .cargo/config.toml diff --git a/Cargo.lock b/Cargo.lock index f8eb30b1..e4e35e0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,21 +1,21 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" @@ -65,9 +65,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -80,49 +80,49 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "apple-bundles" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb7c27ee2ca7826adfdc84228cd4c5a84ab57b0a11d269d1d7cd0615238e5a2" +checksum = "c0f40bb8f844cec39fa3aceae717808c2ac3d2b6c474a9dffbeba07a4a945d10" dependencies = [ "anyhow", "plist", @@ -132,15 +132,15 @@ dependencies = [ [[package]] name = "apple-codesign" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329820aac7259ca0529d3cc21dd3b4c11651225dfce9e0ce25b121b23f923164" +checksum = "f24e9ebdb70a2aee3ca1cea217009fb50776955f0d7678c31d22e48c1524667f" dependencies = [ "anyhow", "apple-bundles", "apple-flat-package", "apple-xar", - "base64 0.21.7", + "base64 0.22.1", "bcder", "bitflags 2.6.0", "bytes", @@ -153,7 +153,7 @@ dependencies = [ "digest", "dirs", "elliptic-curve", - "env_logger 0.10.2", + "env_logger 0.11.5", "figment", "filetime", "glob", @@ -163,7 +163,7 @@ dependencies = [ "md-5", "minicbor", "num-traits", - "object 0.32.2", + "object", "oid-registry", "once_cell", "p12", @@ -180,7 +180,7 @@ dependencies = [ "ring", "rsa", "scroll", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "semver", "serde", @@ -193,13 +193,13 @@ dependencies = [ "spki", "subtle", "tempfile", - "thiserror", + "thiserror 2.0.3", "tokio", "tungstenite", "uuid", "walkdir", "widestring", - "windows-sys 0.52.0", + "windows-sys 0.59.0", "x509", "x509-certificate", "xml-rs", @@ -211,9 +211,9 @@ dependencies = [ [[package]] name = "apple-flat-package" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6adc520e05304de5ec383487786fa20e9c636fe972e59719cdd93621a2db6f1" +checksum = "9c9d5a1fd8af4a376cc33d7e816a13f8ce127d52101f5dbc8061fb595397bea0" dependencies = [ "apple-xar", "cpio-archive", @@ -221,16 +221,16 @@ dependencies = [ "scroll", "serde", "serde-xml-rs", - "thiserror", + "thiserror 2.0.3", ] [[package]] name = "apple-xar" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844e00dc1e665b3cf0bba745aa9c6464292ca512db0c11384511586701eb0335" +checksum = "9631e781df71ebd049d7b4988cdae88712324cb20eb127fd79026bc8f1335d93" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bcder", "bzip2", "chrono", @@ -247,13 +247,22 @@ dependencies = [ "sha1", "sha2", "signature", - "thiserror", + "thiserror 2.0.3", "url", "x509-certificate", "xml-rs", "xz2", ] +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "array-init" version = "2.1.0" @@ -262,15 +271,15 @@ checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", @@ -278,30 +287,30 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", "synstructure", ] [[package]] name = "asn1-rs-impl" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -313,25 +322,31 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.36.1", + "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -403,9 +418,9 @@ dependencies = [ [[package]] name = "bitvec-nom2" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4863ce31b7ff8812568eaffe956024c824d845a1f9f08c329706166c357cae53" +checksum = "d988fcc40055ceaa85edc55875a08f8abd29018582647fd82ad6128dba14a5f0" dependencies = [ "bitvec", "nom", @@ -431,9 +446,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ "memchr", "regex-automata", @@ -460,9 +475,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.16.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" [[package]] name = "byteorder" @@ -472,9 +487,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "bytesize" @@ -538,9 +553,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.5" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324c74f2155653c90b04f25b2a47a8a631360cb908f92a772695f430c7e31052" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +dependencies = [ + "shlex", +] [[package]] name = "cfg-if" @@ -556,9 +574,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" @@ -587,9 +605,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -597,9 +615,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -610,36 +628,36 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.8" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b4be9c4c4b1f30b78d8a750e0822b6a6102d97e62061c583a6c1dea2dfb33ae" +checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "console" @@ -662,9 +680,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_panic" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" +checksum = "013b6c2c3a14d678f38cd23994b02da3a1a1b6a5d1eedddfe63a5a5f11b13a81" [[package]] name = "cookie-factory" @@ -685,11 +703,21 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "countme" @@ -699,21 +727,21 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cpio-archive" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d5133d716d3d82da8c76367ddb0ab1733e2629f1462e4f39947e13b8b4b741" +checksum = "f11d34b07689c21889fc89bd7cc885b3244b0157bbededf4a1c159832cd0df05" dependencies = [ "chrono", "is_executable", "simple-file-manifest", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -729,9 +757,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" @@ -791,9 +819,9 @@ dependencies = [ [[package]] name = "cryptographic-message-syntax" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c324ba1028cef7e3a71a00cbf585637bb0215dec2f6a2b566d094190a1309b" +checksum = "97a99e58d7755c646cb3f2a138d99f90da4c495282e1700b82daff8a48759ce0" dependencies = [ "bcder", "bytes", @@ -808,12 +836,12 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.4" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ "nix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -839,7 +867,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] @@ -880,14 +908,14 @@ dependencies = [ ] [[package]] -name = "derive_more" -version = "0.99.18" +name = "derive_arbitrary" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] @@ -908,7 +936,7 @@ dependencies = [ "console", "shell-words", "tempfile", - "thiserror", + "thiserror 1.0.69", "zeroize", ] @@ -959,15 +987,9 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "drop_bomb" version = "0.1.5" @@ -1027,20 +1049,11 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if 1.0.0", -] - [[package]] name = "env_filter" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ "log", "regex", @@ -1061,9 +1074,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ "anstream", "anstyle", @@ -1080,12 +1093,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1096,9 +1109,9 @@ checksum = "9812c4d73200994a644a38c0d0a5397cf51b5e28ac02668601d56df902f450e6" [[package]] name = "fastrand" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "ff" @@ -1125,28 +1138,28 @@ dependencies = [ "atomic", "pear", "serde", - "toml 0.8.14", + "toml 0.8.19", "uncased", "version_check", ] [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1158,6 +1171,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1225,9 +1244,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1240,9 +1259,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1250,15 +1269,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1267,38 +1286,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1330,15 +1349,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if 1.0.0", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -1348,9 +1369,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" dependencies = [ "aho-corasick", "bstr", @@ -1372,9 +1393,9 @@ dependencies = [ [[package]] name = "goblin" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" +checksum = "53ab3f32d1d77146981dea5d6b1e8fe31eedcb7013e5e00d6ccd1259a4b4d923" dependencies = [ "log", "plain", @@ -1394,17 +1415,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.2.6", + "http", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -1413,16 +1434,17 @@ dependencies = [ [[package]] name = "handlebars" -version = "5.1.2" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +checksum = "fd4ccde012831f9a071a637b0d4e31df31c0f6c525784b35ae76a9ac6bc1e315" dependencies = [ "log", + "num-order", "pest", "pest_derive", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1440,6 +1462,15 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] + [[package]] name = "heck" version = "0.3.3" @@ -1467,6 +1498,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -1493,9 +1530,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1503,38 +1540,33 @@ dependencies = [ ] [[package]] -name = "http" -version = "1.1.0" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "fnv", - "itoa", + "http", ] [[package]] -name = "http-body" -version = "0.4.6" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "http 0.2.12", + "futures-util", + "http", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "humantime" @@ -1544,47 +1576,67 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", - "http 0.2.12", + "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 0.2.12", + "http", "hyper", - "rustls 0.21.12", + "hyper-util", + "rustls", + "rustls-native-certs 0.8.1", + "rustls-pki-types", "tokio", "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1603,21 +1655,150 @@ dependencies = [ "cc", ] +[[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_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +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_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" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] name = "ignore" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" dependencies = [ "crossbeam-deque", "globset", @@ -1641,12 +1822,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1671,7 +1852,7 @@ checksum = "b185e7d068d6820411502efa14d8fbf010750485399402156b72dd2a548ef8e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] @@ -1723,9 +1904,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.39.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" dependencies = [ "lazy_static", "linked-hash-map", @@ -1754,75 +1935,70 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] [[package]] name = "is_executable" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" dependencies = [ "winapi 0.3.9", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.10.5" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] -[[package]] -name = "jzon" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ab85f84ca42c5ec520e6f3c9966ba1fd62909ce260f8837e248857d2560509" - [[package]] name = "kernel32-sys" version = "0.2.2" @@ -1835,9 +2011,9 @@ dependencies = [ [[package]] name = "konst" -version = "0.3.9" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50a0ba6de5f7af397afff922f22c149ff605c766cd3269cf6c1cd5e466dbe3b9" +checksum = "b65f00fb3910881e52bf0850ae2a82aea411488a557e1c02820ceaa60963dce3" dependencies = [ "const_panic", "konst_kernel", @@ -1846,9 +2022,9 @@ dependencies = [ [[package]] name = "konst_kernel" -version = "0.3.9" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0a455a1719220fd6adf756088e1c69a85bf14b6a9e24537a5cc04f503edb2b" +checksum = "599c1232f55c72c7fc378335a3efe1c878c92720838c8e6a4fd87784ef7764de" dependencies = [ "typewit", ] @@ -1896,9 +2072,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libdbus-sys" @@ -1912,19 +2088,19 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if 1.0.0", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -1934,6 +2110,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", + "redox_syscall 0.5.7", ] [[package]] @@ -1948,6 +2125,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "lld_rs" version = "140.0.0" @@ -1991,16 +2174,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be1cf190319c74ba3e45923624626ae2e43fe42ad7e60ff38ded81044c37630" [[package]] -name = "log" -version = "0.4.22" +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + +[[package]] +name = "log" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lsp-server" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095" +checksum = "550446e84739dcaf6d48a4a093973850669e13e8a34d8f8d64851041be267cd9" dependencies = [ "crossbeam-channel", "log", @@ -2044,15 +2233,15 @@ dependencies = [ [[package]] name = "mdbook" -version = "0.4.40" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45a38e19bd200220ef07c892b0157ad3d2365e5b5a267ca01ad12182491eea5" +checksum = "fe1f98b8d66e537d2f0ba06e7dec4f44001deec539a2d18bfc102d6a86189148" dependencies = [ "anyhow", "chrono", "clap", "clap_complete", - "env_logger 0.11.3", + "env_logger 0.11.5", "handlebars", "log", "memchr", @@ -2074,15 +2263,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -2091,22 +2271,22 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minicbor" -version = "0.20.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d15f4203d71fdf90903c2696e55426ac97a363c67b218488a73b534ce7aca10" +checksum = "c0452a60c1863c1f50b5f77cd295e8d2786849f35883f0b9e18e7e6e1b5691b0" dependencies = [ "minicbor-derive", ] [[package]] name = "minicbor-derive" -version = "0.13.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1154809406efdb7982841adb6311b3d095b46f78342dd646736122fe6b19e267" +checksum = "bd2209fff77f705b00c737016a48e73733d7fbccb8b007194db148f03561fb70" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -2117,11 +2297,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -2155,6 +2335,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.52.0", +] + [[package]] name = "mio-extras" version = "2.0.6" @@ -2242,11 +2433,11 @@ dependencies = [ "once_cell", "parking_lot 0.12.3", "paste", - "rustc-hash", + "rustc-hash 1.1.0", "salsa", "smallvec", "tempfile", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2255,7 +2446,7 @@ version = "0.6.0-dev" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] @@ -2326,7 +2517,7 @@ dependencies = [ "mun_test", "once_cell", "parking_lot 0.12.3", - "rustc-hash", + "rustc-hash 1.1.0", "salsa", "smallvec", "text_trees", @@ -2341,7 +2532,7 @@ dependencies = [ "la-arena", "mun_paths", "mun_syntax", - "rustc-hash", + "rustc-hash 1.1.0", "salsa", ] @@ -2368,13 +2559,13 @@ dependencies = [ "mun_vfs", "parking_lot 0.12.3", "ra_ap_text_edit", - "rustc-hash", + "rustc-hash 1.1.0", "salsa", "serde", "serde_derive", "serde_json", "tempdir", - "thiserror", + "thiserror 1.0.69", "threadpool", ] @@ -2386,7 +2577,7 @@ dependencies = [ "libloading", "mun_abi", "tempfile", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2401,8 +2592,8 @@ dependencies = [ "once_cell", "parking_lot 0.12.3", "paste", - "rustc-hash", - "thiserror", + "rustc-hash 1.1.0", + "thiserror 1.0.69", ] [[package]] @@ -2418,11 +2609,11 @@ version = "0.6.0-dev" dependencies = [ "anyhow", "mun_paths", - "rustc-hash", + "rustc-hash 1.1.0", "semver", "serde", "serde_derive", - "toml 0.8.14", + "toml 0.8.19", ] [[package]] @@ -2441,11 +2632,11 @@ dependencies = [ "notify 5.2.0", "once_cell", "parking_lot 0.12.3", - "rustc-hash", + "rustc-hash 1.1.0", "seq-macro", "tempfile", "termcolor", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2520,7 +2711,7 @@ dependencies = [ "log", "mun_paths", "notify 5.2.0", - "rustc-hash", + "rustc-hash 1.1.0", "walkdir", ] @@ -2537,9 +2728,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags 2.6.0", "cfg-if 1.0.0", @@ -2559,11 +2750,11 @@ dependencies = [ [[package]] name = "normpath" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2655,6 +2846,21 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2671,47 +2877,38 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] [[package]] name = "object" -version = "0.32.2" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "crc32fast", "flate2", - "hashbrown 0.14.5", - "indexmap 2.2.6", + "hashbrown 0.15.2", + "indexmap 2.6.0", "memchr", "ruzstd", ] -[[package]] -name = "object" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" -dependencies = [ - "memchr", -] - [[package]] name = "oid-registry" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" dependencies = [ "critical-section", "portable-atomic", @@ -2725,14 +2922,14 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "opener" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8df34be653210fbe9ffaff41d3b92721c56ce82dfee58ee684f9afb5e3a90c0" +checksum = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681" dependencies = [ "bstr", "dbus", "normpath", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2818,7 +3015,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -2849,7 +3046,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] @@ -2879,20 +3076,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -2900,22 +3097,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -2924,9 +3121,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -2957,9 +3154,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plain" @@ -2974,7 +3171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.2.6", + "indexmap 2.6.0", "quick-xml", "serde", "time", @@ -2982,9 +3179,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -2994,9 +3191,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "pretty_env_logger" @@ -3019,9 +3219,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3034,7 +3234,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", "version_check", "yansi", ] @@ -3077,11 +3277,63 @@ dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.0", + "rustls", + "socket2", + "thiserror 2.0.3", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom", + "rand 0.8.5", + "ring", + "rustc-hash 2.1.0", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.3", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -3162,9 +3414,9 @@ dependencies = [ [[package]] name = "rasn" -version = "0.12.5" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9b0d03fbc7d2dcfdd35086c43ce30ac5ff62ed7eff4397e4f4f2995a2b0e2a" +checksum = "e442690f86da40561d5548e7ffb4a18af90d1c1b3536090de847ca2d5a3a6426" dependencies = [ "arrayvec", "bitvec", @@ -3172,7 +3424,7 @@ dependencies = [ "bytes", "chrono", "either", - "jzon", + "hashbrown 0.14.5", "konst", "nom", "num-bigint", @@ -3180,21 +3432,22 @@ dependencies = [ "num-traits", "once_cell", "rasn-derive", + "serde_json", "snafu", ] [[package]] name = "rasn-derive" -version = "0.12.5" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbaf7105cd254b632f4732fbcc243ce750cef87d8335826125ef6df5733b5a0c" +checksum = "96b0d374c7e4e985e6bc97ca7e7ad1d9642a8415db2017777d6e383002edaab2" dependencies = [ "either", - "itertools 0.10.5", + "itertools 0.13.0", "proc-macro2", "quote", "rayon", - "syn 1.0.109", + "syn 2.0.90", "uuid", ] @@ -3247,38 +3500,29 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -3288,9 +3532,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -3299,9 +3543,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" @@ -3320,20 +3564,22 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", - "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", - "http 0.2.12", + "http", "http-body", + "http-body-util", "hyper", "hyper-rustls", + "hyper-util", "ipnet", "js-sys", "log", @@ -3341,14 +3587,15 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "rustls-pemfile 1.0.4", + "quinn", + "rustls", + "rustls-native-certs 0.8.1", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", "tokio-rustls", "tower-service", @@ -3357,7 +3604,7 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots", - "winreg", + "windows-registry", ] [[package]] @@ -3400,22 +3647,21 @@ dependencies = [ [[package]] name = "rowan" -version = "0.15.15" +version = "0.15.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a58fa8a7ccff2aec4f39cc45bf5f985cec7125ab271cf681c279fd00192b49" +checksum = "0a542b0253fa46e632d27a1dc5cf7b930de4df8659dc6e720b647fc72147ae3d" dependencies = [ "countme", "hashbrown 0.14.5", - "memoffset", - "rustc-hash", + "rustc-hash 1.1.0", "text-size", ] [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest", @@ -3443,11 +3689,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -3463,9 +3715,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -3476,95 +3728,66 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", + "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.5", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.4", + "rustls-pemfile", + "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", "rustls-pki-types", "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.0.1", ] [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" dependencies = [ - "ring", - "untrusted", + "web-time", ] [[package]] name = "rustls-webpki" -version = "0.102.5" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -3573,12 +3796,10 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.5.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" dependencies = [ - "byteorder", - "derive_more", "twox-hash", ] @@ -3600,7 +3821,7 @@ dependencies = [ "log", "oorandom", "parking_lot 0.11.2", - "rustc-hash", + "rustc-hash 1.1.0", "salsa-macros", "smallvec", ] @@ -3628,11 +3849,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3658,17 +3879,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", + "syn 2.0.90", ] [[package]] @@ -3692,7 +3903,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -3700,9 +3924,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -3725,9 +3949,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -3740,28 +3964,29 @@ checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" dependencies = [ "log", "serde", - "thiserror", + "thiserror 1.0.69", "xml-rs", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -3774,14 +3999,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -3804,7 +4029,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -3855,11 +4080,17 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "similar" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" [[package]] name = "simple-file-manifest" @@ -3893,32 +4124,30 @@ dependencies = [ [[package]] name = "snafu" -version = "0.7.5" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ - "backtrace", - "doc-comment", "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.7.5" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3952,6 +4181,12 @@ dependencies = [ "der", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -3983,9 +4218,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.71" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -3994,41 +4229,22 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" -version = "0.12.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "syn 2.0.90", ] [[package]] @@ -4049,14 +4265,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if 1.0.0", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4086,12 +4303,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" dependencies = [ "rustix", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -4111,22 +4328,42 @@ checksum = "419ea7ab2f07ffc59c5e9424bcb73677933940f8bdadbe21649c1584dc06d0cf" [[package]] name = "thiserror" -version = "1.0.62" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.62" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] @@ -4169,6 +4406,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -4186,34 +4433,35 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.1" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", "libc", - "mio 0.8.11", + "mio 1.0.3", "pin-project-lite", "socket2", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.21.12", + "rustls", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -4233,9 +4481,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.14" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", @@ -4245,20 +4493,20 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.15" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59a3a72298453f564e2b111fa896f8d07fabb36f51f06d7e875fc5e0b5a3ef1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -4286,15 +4534,15 @@ checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-core", @@ -4302,9 +4550,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -4317,23 +4565,22 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.21.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http", "httparse", "log", "rand 0.8.5", - "rustls 0.22.4", - "rustls-native-certs 0.7.1", + "rustls", + "rustls-native-certs 0.7.3", "rustls-pki-types", "sha1", - "thiserror", - "url", + "thiserror 1.0.69", "utf-8", ] @@ -4343,7 +4590,7 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 0.1.10", "static_assertions", ] @@ -4355,9 +4602,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "typewit" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fb9ae6a3cafaf0a5d14c2302ca525f9ae8e07a0f0e6949de88d882c37a6e24" +checksum = "d51dbd25812f740f45e2a9769f84711982e000483b13b73a8a1852e092abac8c" dependencies = [ "typewit_proc_macros", ] @@ -4370,9 +4617,9 @@ checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uncased" @@ -4435,51 +4682,33 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unsafe-libyaml" @@ -4495,9 +4724,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -4511,6 +4740,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[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" + [[package]] name = "utf8parse" version = "0.2.2" @@ -4519,18 +4760,18 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", ] [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -4559,46 +4800,48 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if 1.0.0", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" dependencies = [ "cfg-if 1.0.0", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4606,28 +4849,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -4635,9 +4888,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "widestring" @@ -4675,11 +4931,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.48.0", ] [[package]] @@ -4697,6 +4953,36 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -4724,6 +5010,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -4904,22 +5199,24 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.13" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] [[package]] -name = "winreg" -version = "0.50.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if 1.0.0", - "windows-sys 0.48.0", -] +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "ws2_32-sys" @@ -4952,9 +5249,9 @@ dependencies = [ [[package]] name = "x509-certificate" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66534846dec7a11d7c50a74b7cdb208b9a581cad890b7866430d438455847c85" +checksum = "e57b9f8bcae7c1f36479821ae826d75050c60ce55146fd86d3553ed2573e2762" dependencies = [ "bcder", "bytes", @@ -4965,15 +5262,15 @@ dependencies = [ "ring", "signature", "spki", - "thiserror", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" [[package]] name = "xz2" @@ -5005,12 +5302,37 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] @@ -5022,7 +5344,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", ] [[package]] @@ -5042,19 +5385,46 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.90", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] name = "zip" -version = "0.6.6" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "99d52293fc86ea7cf13971b3bb81eb21683636e7ae24c729cdaf1b7c4157a352" dependencies = [ - "byteorder", + "arbitrary", "crc32fast", "crossbeam-utils", + "displaydoc", "flate2", + "indexmap 2.6.0", + "memchr", + "thiserror 2.0.3", + "zopfli", ] [[package]] @@ -5065,5 +5435,19 @@ checksum = "ce824a6bfffe8942820fa36d24973b7c83a40896749a42e33de0abdd11750ee5" dependencies = [ "byteorder", "bytesize", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "zopfli" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +dependencies = [ + "bumpalo", + "crc32fast", + "lockfree-object-pool", + "log", + "once_cell", + "simd-adler32", ] diff --git a/Cargo.toml b/Cargo.toml index e1dc056b..75958701 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,69 +16,69 @@ license = "MIT OR Apache-2.0" categories = ["game-development"] [workspace.dependencies] -annotate-snippets = { version = "0.10.0", default-features = false } -anyhow = { version = "1.0.75", default-features = false } -apple-codesign = { version = "0.27.0", default-features = false } +annotate-snippets = { version = "0.10.2", default-features = false } +anyhow = { version = "1.0.93", default-features = false } +apple-codesign = { version = "0.29.0", default-features = false } array-init = { version = "2.1.0", default-features = false } -bitflags = { version = "2.5.0", default-features = false } -by_address = { version = "1.1.0", default-features = false } -bytecount = { version = "0.6.7", default-features = false } -bytemuck = { version = "1.14.0", default-features = false } +bitflags = { version = "2.6.0", default-features = false } +by_address = { version = "1.2.1", default-features = false } +bytecount = { version = "0.6.8", default-features = false } +bytemuck = { version = "1.20.0", default-features = false } cargo-husky = { version = "1", default-features = false } cbindgen = { version = "0.24.5", default-features = false } -clap = { version = "4.4.11", default-features = false } -crossbeam-channel = { version = "0.5.9", default-features = false } +clap = { version = "4.5.21", default-features = false } +crossbeam-channel = { version = "0.5.13", default-features = false } ctrlc = { version = "3.4", default-features = false } difference = "2.0" drop_bomb = { version = "0.1.5", default-features = false } -either = { version = "1.9.0", default-features = false } +either = { version = "1.13.0", default-features = false } ena = { version = "0.14", default-features = false } extendhash = { version = "1.0.10", default-features = false } heck = "0.4.1" inkwell = { version = "0.2.0", default-features = false } -insta = { version = "1.34.0", default-features = false } -itertools = { version = "0.12.0", default-features = false } +insta = { version = "1.41.1", default-features = false } +itertools = { version = "0.12.1", default-features = false } la-arena = { version = "0.3.1", default-features = false } -lazy_static = { version = "1.4.0", default-features = false } -libloading = { version = "0.8.1", default-features = false } +lazy_static = { version = "1.5.0", default-features = false } +libloading = { version = "0.8.6", default-features = false } lld_rs = { version = "140.0.0", default-features = false } lockfile = { version = "0.4.0", default-features = false } -log = { version = "0.4.20", default-features = false } -lsp-server = { version = "0.7.5", default-features = false } +log = { version = "0.4.22", default-features = false } +lsp-server = { version = "0.7.7", default-features = false } lsp-types = { version = "=0.95.0", default-features = false } -mdbook = { version = "0.4.36", default-features = false } -once_cell = { version = "1.19.0", default-features = false } -parking_lot = { version = "0.12.1", default-features = false } -paste = { version = "1.0.14", default-features = false } +mdbook = { version = "0.4.43", default-features = false } +once_cell = { version = "1.20.2", default-features = false } +parking_lot = { version = "0.12.3", default-features = false } +paste = { version = "1.0.15", default-features = false } pretty_env_logger = { version = "0.5.0", default-features = false } proc-macro2 = { version = "1.0", default-features = false } -pulldown-cmark = { version = "0.9.3", default-features = false } +pulldown-cmark = { version = "0.9.6", default-features = false } quote = { version = "1.0", default-features = false } ra_ap_text_edit = { version = "0.0.190", default-features = false } relative-path = { version = "1.9", default-features = false } ron = "0.8.1" -rowan = { version = "0.15.15", default-features = false } +rowan = { version = "0.15.16", default-features = false } rustc-hash = { version = "1.1.0", default-features = false } salsa = { version = "0.16.1", default-features = false } semver = { version = "1.0", default-features = false } seq-macro = { version = "0.3.5", default-features = false } -serde = { version = "1.0.193", default-features = false } +serde = { version = "1.0.215", default-features = false } serde_derive = { version = "1.0", default-features = false } serde_json = { version = "1.0", default-features = false } -smallvec = { version = "1.11.2", default-features = false } -smol_str = { version = "0.2.1", default-features = false } +smallvec = { version = "1.13.2", default-features = false } +smol_str = { version = "0.2.2", default-features = false } syn = { version = "2.0", default-features = false } tempdir = { version = "0.3.7", default-features = false } -tempfile = { version = "3.8", default-features = false } -tera = { version = "1.19.1", default-features = false } -termcolor = { version = "1.1", default-features = false } +tempfile = { version = "3.14", default-features = false } +tera = { version = "1.20.0", default-features = false } +termcolor = { version = "1.4", default-features = false } text-size = { version = "1.1.1", default-features = false } text_trees = { version = "0.1.2", default-features = false } -thiserror = { version = "1.0.51", default-features = false } +thiserror = { version = "1.0.69", default-features = false } threadpool = { version = "1.8.1", default-features = false } -toml = { version = "0.8.8", default-features = false } -unicode-xid = { version = "0.2.4", default-features = false } -walkdir = { version = "2.4.0", default-features = false } +toml = { version = "0.8.19", default-features = false } +unicode-xid = { version = "0.2.6", default-features = false } +walkdir = { version = "2.5.0", default-features = false } yansi-term = { version = "0.1.2", default-features = false } notify = { version = "5.2.0" } winapi = { version = "0.3.9", default-features = false } diff --git a/crates/mun_abi/src/assembly_info.rs b/crates/mun_abi/src/assembly_info.rs index 9fd62c96..e00dc977 100644 --- a/crates/mun_abi/src/assembly_info.rs +++ b/crates/mun_abi/src/assembly_info.rs @@ -17,7 +17,7 @@ pub struct AssemblyInfo<'a> { pub num_dependencies: u32, } -impl<'a> AssemblyInfo<'a> { +impl AssemblyInfo<'_> { /// Returns an iterator over the assembly's dependencies. pub fn dependencies(&self) -> impl Iterator { let dependencies = if self.num_dependencies == 0 { @@ -32,11 +32,11 @@ impl<'a> AssemblyInfo<'a> { } } -unsafe impl<'a> Send for AssemblyInfo<'a> {} -unsafe impl<'a> Sync for AssemblyInfo<'a> {} +unsafe impl Send for AssemblyInfo<'_> {} +unsafe impl Sync for AssemblyInfo<'_> {} #[cfg(feature = "serde")] -impl<'a> serde::Serialize for AssemblyInfo<'a> { +impl serde::Serialize for AssemblyInfo<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_abi/src/dispatch_table.rs b/crates/mun_abi/src/dispatch_table.rs index ac13aae0..a28ffacd 100644 --- a/crates/mun_abi/src/dispatch_table.rs +++ b/crates/mun_abi/src/dispatch_table.rs @@ -116,7 +116,7 @@ impl<'a> DispatchTable<'a> { } #[cfg(feature = "serde")] -impl<'a> serde::Serialize for DispatchTable<'a> { +impl serde::Serialize for DispatchTable<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_abi/src/function_info.rs b/crates/mun_abi/src/function_info.rs index 1ce2f8b9..d843bafc 100644 --- a/crates/mun_abi/src/function_info.rs +++ b/crates/mun_abi/src/function_info.rs @@ -42,18 +42,18 @@ pub struct FunctionSignature<'a> { pub num_arg_types: u16, } -unsafe impl<'a> Send for FunctionDefinition<'a> {} -unsafe impl<'a> Sync for FunctionDefinition<'a> {} +unsafe impl Send for FunctionDefinition<'_> {} +unsafe impl Sync for FunctionDefinition<'_> {} -impl<'a> FunctionPrototype<'a> { +impl FunctionPrototype<'_> { /// Returns the function's name. pub fn name(&self) -> &str { unsafe { str::from_utf8_unchecked(CStr::from_ptr(self.name).to_bytes()) } } } -unsafe impl<'a> Send for FunctionPrototype<'a> {} -unsafe impl<'a> Sync for FunctionPrototype<'a> {} +unsafe impl Send for FunctionPrototype<'_> {} +unsafe impl Sync for FunctionPrototype<'_> {} impl<'a> FunctionSignature<'a> { /// Returns the function's arguments' types. @@ -75,19 +75,19 @@ impl<'a> FunctionSignature<'a> { } } -impl<'a> PartialEq for FunctionSignature<'a> { +impl PartialEq for FunctionSignature<'_> { fn eq(&self, other: &Self) -> bool { self.return_type() == other.return_type() && self.arg_types().eq(other.arg_types()) } } -impl<'a> Eq for FunctionSignature<'a> {} +impl Eq for FunctionSignature<'_> {} -unsafe impl<'a> Send for FunctionSignature<'a> {} -unsafe impl<'a> Sync for FunctionSignature<'a> {} +unsafe impl Send for FunctionSignature<'_> {} +unsafe impl Sync for FunctionSignature<'_> {} #[cfg(feature = "serde")] -impl<'a> serde::Serialize for FunctionDefinition<'a> { +impl serde::Serialize for FunctionDefinition<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, @@ -102,7 +102,7 @@ impl<'a> serde::Serialize for FunctionDefinition<'a> { } #[cfg(feature = "serde")] -impl<'a> serde::Serialize for FunctionPrototype<'a> { +impl serde::Serialize for FunctionPrototype<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, @@ -117,7 +117,7 @@ impl<'a> serde::Serialize for FunctionPrototype<'a> { } #[cfg(feature = "serde")] -impl<'a> serde::Serialize for FunctionSignature<'a> { +impl serde::Serialize for FunctionSignature<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_abi/src/module_info.rs b/crates/mun_abi/src/module_info.rs index 5b3195c7..fc657f5e 100644 --- a/crates/mun_abi/src/module_info.rs +++ b/crates/mun_abi/src/module_info.rs @@ -57,11 +57,11 @@ impl<'a> ModuleInfo<'a> { } } -unsafe impl<'a> Send for ModuleInfo<'a> {} -unsafe impl<'a> Sync for ModuleInfo<'a> {} +unsafe impl Send for ModuleInfo<'_> {} +unsafe impl Sync for ModuleInfo<'_> {} #[cfg(feature = "serde")] -impl<'a> serde::Serialize for ModuleInfo<'a> { +impl serde::Serialize for ModuleInfo<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_abi/src/struct_info.rs b/crates/mun_abi/src/struct_info.rs index 60649c11..735bab24 100644 --- a/crates/mun_abi/src/struct_info.rs +++ b/crates/mun_abi/src/struct_info.rs @@ -80,16 +80,16 @@ impl<'a> StructDefinition<'a> { } } -impl<'a> PartialEq for StructDefinition<'a> { +impl PartialEq for StructDefinition<'_> { fn eq(&self, other: &Self) -> bool { self.guid == other.guid } } -impl<'a> Eq for StructDefinition<'a> {} +impl Eq for StructDefinition<'_> {} #[cfg(feature = "serde")] -impl<'a> serde::Serialize for StructDefinition<'a> { +impl serde::Serialize for StructDefinition<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_abi/src/type_id.rs b/crates/mun_abi/src/type_id.rs index 0ffb6b7e..ba7bb9bd 100644 --- a/crates/mun_abi/src/type_id.rs +++ b/crates/mun_abi/src/type_id.rs @@ -44,11 +44,11 @@ pub struct ArrayTypeId<'a> { pub element: &'a TypeId<'a>, } -unsafe impl<'a> Send for TypeId<'a> {} +unsafe impl Send for TypeId<'_> {} -unsafe impl<'a> Sync for TypeId<'a> {} +unsafe impl Sync for TypeId<'_> {} -impl<'a> From for TypeId<'a> { +impl From for TypeId<'_> { fn from(guid: Guid) -> Self { TypeId::Concrete(guid) } @@ -60,7 +60,7 @@ impl<'a> From> for TypeId<'a> { } } -impl<'a> fmt::Display for TypeId<'a> { +impl fmt::Display for TypeId<'_> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { TypeId::Concrete(guid) => guid.fmt(f), @@ -70,7 +70,7 @@ impl<'a> fmt::Display for TypeId<'a> { } } -impl<'a> fmt::Display for PointerTypeId<'a> { +impl fmt::Display for PointerTypeId<'_> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { if self.mutable { write!(f, "*mut ") @@ -81,7 +81,7 @@ impl<'a> fmt::Display for PointerTypeId<'a> { } } -impl<'a> fmt::Display for ArrayTypeId<'a> { +impl fmt::Display for ArrayTypeId<'_> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "[{}]", &self.element) } diff --git a/crates/mun_abi/src/type_info.rs b/crates/mun_abi/src/type_info.rs index 0928bcf5..89c27c15 100644 --- a/crates/mun_abi/src/type_info.rs +++ b/crates/mun_abi/src/type_info.rs @@ -33,7 +33,7 @@ pub struct TypeDefinition<'a> { pub data: TypeDefinitionData<'a>, } -impl<'a> Debug for TypeDefinition<'a> { +impl Debug for TypeDefinition<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { f.debug_struct("TypeDefinition") .field("name", &self.name()) @@ -45,7 +45,7 @@ impl<'a> Debug for TypeDefinition<'a> { } #[cfg(feature = "serde")] -impl<'a> serde::Serialize for TypeDefinition<'a> { +impl serde::Serialize for TypeDefinition<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, @@ -118,13 +118,13 @@ impl<'a> TypeDefinition<'a> { } } -impl<'a> fmt::Display for TypeDefinition<'a> { +impl fmt::Display for TypeDefinition<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { write!(f, "{}", self.name()) } } -impl<'a> PartialEq for TypeDefinition<'a> { +impl PartialEq for TypeDefinition<'_> { fn eq(&self, other: &Self) -> bool { self.size_in_bits == other.size_in_bits && self.alignment == other.alignment @@ -132,12 +132,12 @@ impl<'a> PartialEq for TypeDefinition<'a> { } } -impl<'a> Eq for TypeDefinition<'a> {} +impl Eq for TypeDefinition<'_> {} -unsafe impl<'a> Send for TypeDefinition<'a> {} -unsafe impl<'a> Sync for TypeDefinition<'a> {} +unsafe impl Send for TypeDefinition<'_> {} +unsafe impl Sync for TypeDefinition<'_> {} -impl<'a> TypeDefinitionData<'a> { +impl TypeDefinitionData<'_> { /// Returns whether this is a struct type. pub fn is_struct(&self) -> bool { matches!(self, TypeDefinitionData::Struct(_)) diff --git a/crates/mun_abi/src/type_lut.rs b/crates/mun_abi/src/type_lut.rs index d87bbb82..156f7344 100644 --- a/crates/mun_abi/src/type_lut.rs +++ b/crates/mun_abi/src/type_lut.rs @@ -148,7 +148,7 @@ impl<'a> TypeLut<'a> { } #[cfg(feature = "serde")] -impl<'a> serde::Serialize for TypeLut<'a> { +impl serde::Serialize for TypeLut<'_> { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, diff --git a/crates/mun_codegen/src/code_gen/symbols/ir_type_builder.rs b/crates/mun_codegen/src/code_gen/symbols/ir_type_builder.rs index e35cda23..816d8e8f 100644 --- a/crates/mun_codegen/src/code_gen/symbols/ir_type_builder.rs +++ b/crates/mun_codegen/src/code_gen/symbols/ir_type_builder.rs @@ -16,7 +16,7 @@ use crate::{ pub struct TypeIdBuilder<'ink, 'a, 'b, 'c> { context: &'a IrValueContext<'ink, 'b, 'c>, - /// A map of ir::TypeIds that have already have already been interned. + /// A map of `ir::TypeIds` that have already have already been interned. interned_types: RefCell, Global<'ink, ir::TypeId<'ink>>>>, } diff --git a/crates/mun_codegen/src/ir.rs b/crates/mun_codegen/src/ir.rs index 3dc3f2d1..04abaf0b 100644 --- a/crates/mun_codegen/src/ir.rs +++ b/crates/mun_codegen/src/ir.rs @@ -2,7 +2,7 @@ use inkwell::{ context::Context, targets::TargetData, types::{ - AnyType, BasicMetadataTypeEnum, BasicType, BasicTypeEnum, FloatType, FunctionType, IntType, + AnyType, BasicMetadataTypeEnum, BasicType, BasicTypeEnum, FunctionType, IntType, PointerType, }, AddressSpace, @@ -77,94 +77,6 @@ impl<'ink> IsFunctionReturnType<'ink> for () { } } -/// Defines that a value can be converted to an inkwell type -pub trait AsIrType<'ink> { - type Type: AnyType<'ink>; - - fn as_ir_type(&self, context: &'ink Context, target: &TargetData) -> Self::Type; -} - -pub trait AsBasicIrType<'ink> { - fn as_ir_type(&self, context: &'ink Context, target: &TargetData) -> BasicTypeEnum<'ink>; -} - -impl<'ink, S: BasicType<'ink>, T: AsIrType<'ink, Type = S>> AsBasicIrType<'ink> for T { - fn as_ir_type(&self, context: &'ink Context, target: &TargetData) -> BasicTypeEnum<'ink> { - self.as_ir_type(context, target).as_basic_type_enum() - } -} - -/// Defines that a value can be used to construct a function type. -pub trait AsFunctionReturnType<'ink> { - fn as_fn_type( - &self, - context: &'ink Context, - target: &TargetData, - arg_types: &[BasicMetadataTypeEnum<'ink>], - is_var_args: bool, - ) -> FunctionType<'ink>; -} - -impl<'ink, T: AsBasicIrType<'ink>> AsFunctionReturnType<'ink> for T { - fn as_fn_type( - &self, - context: &'ink Context, - target: &TargetData, - arg_types: &[BasicMetadataTypeEnum<'ink>], - is_var_args: bool, - ) -> FunctionType<'ink> { - self.as_ir_type(context, target) - .fn_type(arg_types, is_var_args) - } -} - -impl<'ink> AsFunctionReturnType<'ink> for () { - fn as_fn_type( - &self, - context: &'ink Context, - _target: &TargetData, - arg_types: &[BasicMetadataTypeEnum<'ink>], - is_var_args: bool, - ) -> FunctionType<'ink> { - context.void_type().fn_type(arg_types, is_var_args) - } -} - -macro_rules! impl_fundamental_ir_types { - ($( - $ty:ty => $context_fun:ident():$inkwell_ty:ty - ),+) => { - $( - impl<'ink> IsIrType<'ink> for $ty { - type Type = $inkwell_ty; - - fn ir_type(context: &'ink Context, _target: &TargetData) -> Self::Type { - context.$context_fun() - } - } - )+ - } -} - -impl_fundamental_ir_types!( - i8 => i8_type():IntType<'ink>, - i16 => i16_type():IntType<'ink>, - i32 => i32_type():IntType<'ink>, - i64 => i64_type():IntType<'ink>, - i128 => i128_type():IntType<'ink>, - - u8 => i8_type():IntType<'ink>, - u16 => i16_type():IntType<'ink>, - u32 => i32_type():IntType<'ink>, - u64 => i64_type():IntType<'ink>, - u128 => i128_type():IntType<'ink>, - - bool => bool_type():IntType<'ink>, - - f32 => f32_type():FloatType<'ink>, - f64 => f64_type():FloatType<'ink> -); - impl<'ink> IsIrType<'ink> for usize { type Type = IntType<'ink>; diff --git a/crates/mun_codegen/src/ir/dispatch_table.rs b/crates/mun_codegen/src/ir/dispatch_table.rs index 31a37e9e..e3339c7a 100644 --- a/crates/mun_codegen/src/ir/dispatch_table.rs +++ b/crates/mun_codegen/src/ir/dispatch_table.rs @@ -323,9 +323,13 @@ impl<'db, 'ink, 't> DispatchTableBuilder<'db, 'ink, 't> { } /// Builds the final `DispatchTable` with all *called* functions from within - /// the module # Parameters + /// the module + /// + /// # Parameters + /// /// * **functions**: Mapping of *defined* Mun functions to their respective /// IR values. + /// /// Returns the `DispatchTable` and a set of dependencies for the module. pub fn build(self) -> (DispatchTable<'ink>, FxHashSet) { // Construct the table body from all the entries in the dispatch table diff --git a/crates/mun_codegen/src/linker.rs b/crates/mun_codegen/src/linker.rs index 0ee2acb3..8ba04536 100644 --- a/crates/mun_codegen/src/linker.rs +++ b/crates/mun_codegen/src/linker.rs @@ -131,9 +131,8 @@ impl Ld64Linker { let sdk_name = match (arch.as_ref(), os.as_ref()) { ("aarch64", "tvos") => "appletvos", ("x86_64", "tvos") => "appletvsimulator", - ("aarch64", "ios") if llvm_target.contains("macabi") => "macosx", + ("aarch64" | "x86_64", "ios") if llvm_target.contains("macabi") => "macosx", ("aarch64", "ios") if llvm_target.ends_with("-simulator") => "iphonesimulator", - ("x86_64", "ios") if llvm_target.contains("macabi") => "macosx", ("arm" | "aarch64", "ios") => "iphoneos", ("x86" | "x86_64", "ios") => "iphonesimulator", ("aarch64", "watchos") if llvm_target.ends_with("-simulator") => "watchsimulator", diff --git a/crates/mun_codegen/src/type_info.rs b/crates/mun_codegen/src/type_info.rs index 8789e5e1..9943b2a6 100644 --- a/crates/mun_codegen/src/type_info.rs +++ b/crates/mun_codegen/src/type_info.rs @@ -1,6 +1,6 @@ use std::{ hash::Hash, - sync::{Arc, Once}, + sync::{Arc, OnceLock}, }; use mun_abi::{self as abi, static_type_map::StaticTypeMap, Guid}; @@ -72,50 +72,34 @@ impl_primitive_type_id! { impl HasStaticTypeId for *const T { fn type_id() -> &'static Arc { - static mut VALUE: Option>> = None; - static INIT: Once = Once::new(); - - let map = unsafe { - INIT.call_once(|| { - VALUE = Some(StaticTypeMap::default()); - }); - VALUE.as_ref().unwrap() - }; - - map.call_once::(|| { - let element_type_id = T::type_id().clone(); - Arc::new(TypeId { - name: format!("*const {}", &element_type_id.name), - data: TypeIdData::Pointer(PointerTypeId { - pointee: element_type_id, - mutable: false, - }), + static INIT: OnceLock>> = OnceLock::new(); + INIT.get_or_init(StaticTypeMap::default) + .call_once::(|| { + let element_type_id = T::type_id().clone(); + Arc::new(TypeId { + name: format!("*const {}", &element_type_id.name), + data: TypeIdData::Pointer(PointerTypeId { + pointee: element_type_id, + mutable: false, + }), + }) }) - }) } } impl HasStaticTypeId for *mut T { fn type_id() -> &'static Arc { - static mut VALUE: Option>> = None; - static INIT: Once = Once::new(); - - let map = unsafe { - INIT.call_once(|| { - VALUE = Some(StaticTypeMap::default()); - }); - VALUE.as_ref().unwrap() - }; - - map.call_once::(|| { - let element_type_id = T::type_id().clone(); - Arc::new(TypeId { - name: format!("*mut {}", &element_type_id.name), - data: TypeIdData::Pointer(PointerTypeId { - pointee: element_type_id, - mutable: true, - }), + static INIT: OnceLock>> = OnceLock::new(); + INIT.get_or_init(StaticTypeMap::default) + .call_once::(|| { + let element_type_id = T::type_id().clone(); + Arc::new(TypeId { + name: format!("*mut {}", &element_type_id.name), + data: TypeIdData::Pointer(PointerTypeId { + pointee: element_type_id, + mutable: true, + }), + }) }) - }) } } diff --git a/crates/mun_codegen/src/value/float_value.rs b/crates/mun_codegen/src/value/float_value.rs index b70b5696..1f0fdc27 100644 --- a/crates/mun_codegen/src/value/float_value.rs +++ b/crates/mun_codegen/src/value/float_value.rs @@ -41,8 +41,8 @@ impl<'ink> PointerValueType<'ink> for f64 { } } -impl<'ink> AddressableType<'ink, f32> for f32 {} -impl<'ink> AddressableType<'ink, f64> for f64 {} +impl AddressableType<'_, f32> for f32 {} +impl AddressableType<'_, f64> for f64 {} impl HasConstValue for f32 { fn has_const_value() -> bool { diff --git a/crates/mun_codegen/src/value/global.rs b/crates/mun_codegen/src/value/global.rs index d55b5364..f0ac22b0 100644 --- a/crates/mun_codegen/src/value/global.rs +++ b/crates/mun_codegen/src/value/global.rs @@ -25,13 +25,13 @@ pub struct Global<'ink, T: ?Sized> { data: PhantomData, } -impl<'ink, T: ?Sized> Clone for Global<'ink, T> { +impl Clone for Global<'_, T> { fn clone(&self) -> Self { *self } } -impl<'ink, T: ?Sized> Copy for Global<'ink, T> {} +impl Copy for Global<'_, T> {} impl<'ink, T: ?Sized> Global<'ink, T> { /// Creates a `Global` from an underlying value. @@ -146,7 +146,7 @@ where } } -impl<'ink, T> HasConstValue for Global<'ink, T> { +impl HasConstValue for Global<'_, T> { fn has_const_value() -> bool { false } diff --git a/crates/mun_codegen/src/value/mod.rs b/crates/mun_codegen/src/value/mod.rs index 6164acda..9d41ec8f 100644 --- a/crates/mun_codegen/src/value/mod.rs +++ b/crates/mun_codegen/src/value/mod.rs @@ -124,7 +124,7 @@ pub enum BytesOrPtr<'ink> { UntypedPtr(PointerValue<'ink>), } -impl<'ink> From> for BytesOrPtr<'ink> { +impl From> for BytesOrPtr<'_> { fn from(bytes: Vec) -> Self { BytesOrPtr::Bytes(bytes) } @@ -339,7 +339,7 @@ where } } -impl<'ink, T: SizedValueType<'ink> + ?Sized> Value<'ink, T> { +impl<'ink, T: SizedValueType<'ink>> Value<'ink, T> { /// Returns the inkwell type of this `Value`. pub fn get_ir_type(context: &IrTypeContext<'ink, '_>) -> >::Type { T::get_ir_type(context) diff --git a/crates/mun_codegen_macros/Cargo.toml b/crates/mun_codegen_macros/Cargo.toml index cdb78b1d..3f21f382 100644 --- a/crates/mun_codegen_macros/Cargo.toml +++ b/crates/mun_codegen_macros/Cargo.toml @@ -19,3 +19,6 @@ proc-macro = true proc-macro2 = { workspace = true } quote = { workspace = true } syn = { workspace = true, features = ["derive", "parsing", "printing", "proc-macro"] } + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] } diff --git a/crates/mun_codegen_macros/src/lib.rs b/crates/mun_codegen_macros/src/lib.rs index 14d7bb4d..2488d771 100644 --- a/crates/mun_codegen_macros/src/lib.rs +++ b/crates/mun_codegen_macros/src/lib.rs @@ -164,7 +164,7 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { /// Calculates the size of data after padding has been appended to its end, /// based on its alignment. fn padded_size(align: usize, data_size: usize) -> usize { - ((data_size + align - 1) / align) * align + data_size.div_ceil(align) * align } // Aliasing to make sure that all procedurally generated macros can use the @@ -222,7 +222,7 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { use crate::value::AsBytesAndPtrs; fn padded_size(align: usize, data_size: usize) -> usize { - ((data_size + align - 1) / align) * align + data_size.div_ceil(align) * align } // Aliasing to make sure that all procedurally generated macros can use the @@ -241,7 +241,7 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { /// Calculates the size of data after padding has been appended to its end, /// based on its alignment. fn padded_size(align: usize, data_size: usize) -> usize { - ((data_size + align - 1) / align) * align + data_size.div_ceil(align) * align } // Aliasing to make sure that all procedurally generated macros can use the @@ -580,7 +580,7 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { ); fn padded_size(align: usize, data_size: usize) -> usize { - ((data_size + align - 1) / align) * align + data_size.div_ceil(align) * align } let variant_field_paddings_and_sizes = [ #(#variant_type_field_paddings_and_sizes),* ]; @@ -644,7 +644,7 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { ); fn padded_size(align: usize, data_size: usize) -> usize { - ((data_size + align - 1) / align) * align + data_size.div_ceil(align) * align } let variant_field_paddings_and_sizes = [ #(#variant_value_field_paddings_and_sizes),* ]; diff --git a/crates/mun_diagnostics/src/hir.rs b/crates/mun_diagnostics/src/hir.rs index 0a85d12d..d8f5efe6 100644 --- a/crates/mun_diagnostics/src/hir.rs +++ b/crates/mun_diagnostics/src/hir.rs @@ -54,7 +54,7 @@ struct GenericHirDiagnostic<'diag> { diagnostic: &'diag dyn mun_hir::Diagnostic, } -impl<'diag> Diagnostic for GenericHirDiagnostic<'diag> { +impl Diagnostic for GenericHirDiagnostic<'_> { fn range(&self) -> TextRange { self.diagnostic.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/access_unknown_field.rs b/crates/mun_diagnostics/src/hir/access_unknown_field.rs index f504da21..cc294d51 100644 --- a/crates/mun_diagnostics/src/hir/access_unknown_field.rs +++ b/crates/mun_diagnostics/src/hir/access_unknown_field.rs @@ -22,7 +22,7 @@ pub struct AccessUnknownField<'db, 'diag, DB: mun_hir::HirDatabase> { location: TextRange, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for AccessUnknownField<'db, 'diag, DB> { +impl Diagnostic for AccessUnknownField<'_, '_, DB> { fn range(&self) -> TextRange { self.location } diff --git a/crates/mun_diagnostics/src/hir/duplicate_definition_error.rs b/crates/mun_diagnostics/src/hir/duplicate_definition_error.rs index e8936747..427f5d22 100644 --- a/crates/mun_diagnostics/src/hir/duplicate_definition_error.rs +++ b/crates/mun_diagnostics/src/hir/duplicate_definition_error.rs @@ -92,7 +92,7 @@ pub struct DuplicateDefinition<'db, 'diag, DB: mun_hir::HirDatabase> { diag: &'diag mun_hir::diagnostics::DuplicateDefinition, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for DuplicateDefinition<'db, 'diag, DB> { +impl Diagnostic for DuplicateDefinition<'_, '_, DB> { fn range(&self) -> TextRange { syntax_node_identifier_range( &self.diag.definition.value, @@ -144,7 +144,7 @@ impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for DuplicateDefinition<'d } } -impl<'db, 'diag, DB: mun_hir::HirDatabase> DuplicateDefinition<'db, 'diag, DB> { +impl DuplicateDefinition<'_, '_, DB> { /// Returns either `type` or `value` definition on the type of definition. fn value_or_type_string(&self) -> &'static str { if self.diag.definition.value.kind() == SyntaxKind::STRUCT_DEF { diff --git a/crates/mun_diagnostics/src/hir/expected_function.rs b/crates/mun_diagnostics/src/hir/expected_function.rs index d5ff0b87..a7538d31 100644 --- a/crates/mun_diagnostics/src/hir/expected_function.rs +++ b/crates/mun_diagnostics/src/hir/expected_function.rs @@ -18,7 +18,7 @@ pub struct ExpectedFunction<'db, 'diag, DB: mun_hir::HirDatabase> { diag: &'diag mun_hir::diagnostics::ExpectedFunction, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for ExpectedFunction<'db, 'diag, DB> { +impl Diagnostic for ExpectedFunction<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/exported_private.rs b/crates/mun_diagnostics/src/hir/exported_private.rs index b64c3a93..ac92b68d 100644 --- a/crates/mun_diagnostics/src/hir/exported_private.rs +++ b/crates/mun_diagnostics/src/hir/exported_private.rs @@ -10,7 +10,7 @@ pub struct ExportedPrivate<'db, 'diag, DB: mun_hir::HirDatabase> { value_name: String, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for ExportedPrivate<'db, 'diag, DB> { +impl Diagnostic for ExportedPrivate<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/mismatched_type.rs b/crates/mun_diagnostics/src/hir/mismatched_type.rs index 7f789a70..0332932e 100644 --- a/crates/mun_diagnostics/src/hir/mismatched_type.rs +++ b/crates/mun_diagnostics/src/hir/mismatched_type.rs @@ -20,7 +20,7 @@ pub struct MismatchedType<'db, 'diag, DB: mun_hir::HirDatabase> { diag: &'diag mun_hir::diagnostics::MismatchedType, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for MismatchedType<'db, 'diag, DB> { +impl Diagnostic for MismatchedType<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/missing_fields.rs b/crates/mun_diagnostics/src/hir/missing_fields.rs index 5fa4dca1..d9c34c42 100644 --- a/crates/mun_diagnostics/src/hir/missing_fields.rs +++ b/crates/mun_diagnostics/src/hir/missing_fields.rs @@ -22,7 +22,7 @@ pub struct MissingFields<'db, 'diag, DB: mun_hir::HirDatabase> { missing_fields: String, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for MissingFields<'db, 'diag, DB> { +impl Diagnostic for MissingFields<'_, '_, DB> { fn range(&self) -> TextRange { self.location } diff --git a/crates/mun_diagnostics/src/hir/possibly_unitialized_variable.rs b/crates/mun_diagnostics/src/hir/possibly_unitialized_variable.rs index 11825d98..6357113b 100644 --- a/crates/mun_diagnostics/src/hir/possibly_unitialized_variable.rs +++ b/crates/mun_diagnostics/src/hir/possibly_unitialized_variable.rs @@ -18,9 +18,7 @@ pub struct PossiblyUninitializedVariable<'db, 'diag, DB: mun_hir::HirDatabase> { value_name: String, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic - for PossiblyUninitializedVariable<'db, 'diag, DB> -{ +impl Diagnostic for PossiblyUninitializedVariable<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/unresolved_type.rs b/crates/mun_diagnostics/src/hir/unresolved_type.rs index 57ff4085..640b8f52 100644 --- a/crates/mun_diagnostics/src/hir/unresolved_type.rs +++ b/crates/mun_diagnostics/src/hir/unresolved_type.rs @@ -17,7 +17,7 @@ pub struct UnresolvedType<'db, 'diag, DB: mun_hir::HirDatabase> { value_name: String, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for UnresolvedType<'db, 'diag, DB> { +impl Diagnostic for UnresolvedType<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_diagnostics/src/hir/unresolved_value.rs b/crates/mun_diagnostics/src/hir/unresolved_value.rs index 4be3da27..eebca217 100644 --- a/crates/mun_diagnostics/src/hir/unresolved_value.rs +++ b/crates/mun_diagnostics/src/hir/unresolved_value.rs @@ -17,7 +17,7 @@ pub struct UnresolvedValue<'db, 'diag, DB: mun_hir::HirDatabase> { value_name: String, } -impl<'db, 'diag, DB: mun_hir::HirDatabase> Diagnostic for UnresolvedValue<'db, 'diag, DB> { +impl Diagnostic for UnresolvedValue<'_, '_, DB> { fn range(&self) -> TextRange { self.diag.highlight_range() } diff --git a/crates/mun_hir/src/display.rs b/crates/mun_hir/src/display.rs index 15472b94..14e7a0a0 100644 --- a/crates/mun_hir/src/display.rs +++ b/crates/mun_hir/src/display.rs @@ -24,7 +24,7 @@ pub trait HirDisplay { } } -impl<'a, 'b> HirFormatter<'a, 'b> { +impl HirFormatter<'_, '_> { pub fn write_joined( &mut self, iter: impl IntoIterator, @@ -49,7 +49,7 @@ impl<'a, 'b> HirFormatter<'a, 'b> { pub struct HirDisplayWrapper<'a, T>(&'a dyn HirDatabase, &'a T); -impl<'a, T> fmt::Display for HirDisplayWrapper<'a, T> +impl fmt::Display for HirDisplayWrapper<'_, T> where T: HirDisplay, { diff --git a/crates/mun_hir/src/expr/validator/literal_out_of_range.rs b/crates/mun_hir/src/expr/validator/literal_out_of_range.rs index 83816129..f974c7f4 100644 --- a/crates/mun_hir/src/expr/validator/literal_out_of_range.rs +++ b/crates/mun_hir/src/expr/validator/literal_out_of_range.rs @@ -5,7 +5,7 @@ use crate::{ Expr, HirDisplay, Literal, }; -impl<'a> ExprValidator<'a> { +impl ExprValidator<'_> { /// Iterates over all expressions to determine if one of the literals has a /// value that is out of range of its type. pub fn validate_literal_ranges(&self, sink: &mut DiagnosticSink<'_>) { diff --git a/crates/mun_hir/src/expr/validator/uninitialized_access.rs b/crates/mun_hir/src/expr/validator/uninitialized_access.rs index adf94bb7..2074df59 100644 --- a/crates/mun_hir/src/expr/validator/uninitialized_access.rs +++ b/crates/mun_hir/src/expr/validator/uninitialized_access.rs @@ -14,7 +14,7 @@ enum ExprKind { Both, } -impl<'d> ExprValidator<'d> { +impl ExprValidator<'_> { /// Validates that all binding access has previously been initialized. pub(super) fn validate_uninitialized_access(&self, sink: &mut DiagnosticSink<'_>) { let mut initialized_patterns = HashSet::new(); diff --git a/crates/mun_hir/src/item_tree.rs b/crates/mun_hir/src/item_tree.rs index b29e8e36..84385ce6 100644 --- a/crates/mun_hir/src/item_tree.rs +++ b/crates/mun_hir/src/item_tree.rs @@ -29,10 +29,10 @@ use crate::{ pub struct RawVisibilityId(u32); impl RawVisibilityId { - pub const PUB: Self = RawVisibilityId(u32::max_value()); - pub const PRIV: Self = RawVisibilityId(u32::max_value() - 1); - pub const PUB_PACKAGE: Self = RawVisibilityId(u32::max_value() - 2); - pub const PUB_SUPER: Self = RawVisibilityId(u32::max_value() - 3); + pub const PUB: Self = RawVisibilityId(u32::MAX); + pub const PRIV: Self = RawVisibilityId(u32::MAX - 1); + pub const PUB_PACKAGE: Self = RawVisibilityId(u32::MAX - 2); + pub const PUB_SUPER: Self = RawVisibilityId(u32::MAX - 3); } impl fmt::Debug for RawVisibilityId { @@ -275,7 +275,7 @@ impl Index> for ItemTree { #[derive(Debug, Clone, Eq, PartialEq)] pub struct Import { - /// The path of the import (e.g. foo::Bar). Note that group imports have + /// The path of the import (e.g. `foo::Bar`). Note that group imports have /// been desugared, each item in the import tree is a seperate import. pub path: Path, diff --git a/crates/mun_hir/src/package_defs/collector.rs b/crates/mun_hir/src/package_defs/collector.rs index aa09efaa..330d04b0 100644 --- a/crates/mun_hir/src/package_defs/collector.rs +++ b/crates/mun_hir/src/package_defs/collector.rs @@ -54,7 +54,7 @@ impl PartiallyResolvedImport { /// Definition of a single import statement #[derive(Clone, Debug, Eq, PartialEq)] struct Import { - /// The path of the import (e.g. foo::Bar). Note that group imports have + /// The path of the import (e.g. `foo::Bar`). Note that group imports have /// been desugared, each item in the import tree is a seperate import. pub path: Path, @@ -136,7 +136,7 @@ struct DefCollector<'db> { from_glob_import: PerNsGlobImports, } -impl<'db> DefCollector<'db> { +impl DefCollector<'_> { /// Collects all information and stores it in the instance fn collect(&mut self) { /// Recursively iterate over all modules in the `ModuleTree` and add diff --git a/crates/mun_hir/src/semantics.rs b/crates/mun_hir/src/semantics.rs index d3e26b36..84db7238 100644 --- a/crates/mun_hir/src/semantics.rs +++ b/crates/mun_hir/src/semantics.rs @@ -222,7 +222,7 @@ impl Local { } } -impl<'a> SemanticsScope<'a> { +impl SemanticsScope<'_> { /// Call the `visit` function for every named item in the scope pub fn visit_all_names(&self, visit: &mut dyn FnMut(Name, ScopeDef)) { let resolver = &self.resolver; diff --git a/crates/mun_hir/src/ty/infer.rs b/crates/mun_hir/src/ty/infer.rs index c326d5da..b871fdad 100644 --- a/crates/mun_hir/src/ty/infer.rs +++ b/crates/mun_hir/src/ty/infer.rs @@ -232,7 +232,7 @@ impl<'a> InferenceResultBuilder<'a> { } } -impl<'a> InferenceResultBuilder<'a> { +impl InferenceResultBuilder<'_> { /// Collect all the parameter patterns from the body. After calling this /// method the `return_ty` will have a valid value, also all parameters /// are added inferred. diff --git a/crates/mun_hir/src/ty/infer/coerce.rs b/crates/mun_hir/src/ty/infer/coerce.rs index 5ccd9ca9..78b3a4a3 100644 --- a/crates/mun_hir/src/ty/infer/coerce.rs +++ b/crates/mun_hir/src/ty/infer/coerce.rs @@ -1,7 +1,7 @@ use super::InferenceResultBuilder; use crate::{ty::TyKind, Ty}; -impl<'a> InferenceResultBuilder<'a> { +impl InferenceResultBuilder<'_> { /// Unify two types, but may coerce the first one to the second using /// implicit coercion rules if needed. pub(super) fn coerce(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool { diff --git a/crates/mun_hir/src/ty/infer/place_expr.rs b/crates/mun_hir/src/ty/infer/place_expr.rs index 7c6ff597..d56d4983 100644 --- a/crates/mun_hir/src/ty/infer/place_expr.rs +++ b/crates/mun_hir/src/ty/infer/place_expr.rs @@ -1,6 +1,6 @@ use crate::{resolve::ValueNs, ty::infer::InferenceResultBuilder, Expr, ExprId, Path, Resolver}; -impl<'a> InferenceResultBuilder<'a> { +impl InferenceResultBuilder<'_> { /// Checks if the specified expression is a place-expression. A place /// expression represents a memory location. pub(super) fn check_place_expression(&mut self, resolver: &Resolver, expr: ExprId) -> bool { diff --git a/crates/mun_hir/src/ty/infer/unify.rs b/crates/mun_hir/src/ty/infer/unify.rs index 16eba435..044685bb 100644 --- a/crates/mun_hir/src/ty/infer/unify.rs +++ b/crates/mun_hir/src/ty/infer/unify.rs @@ -2,7 +2,7 @@ use std::borrow::Cow; use crate::{ty::infer::InferenceResultBuilder, Ty}; -impl<'a> InferenceResultBuilder<'a> { +impl InferenceResultBuilder<'_> { /// If `ty` is a type variable, and it has been instantiated, then return /// the instantiated type; otherwise returns `ty`. pub(crate) fn replace_if_possible<'b>(&mut self, ty: &'b Ty) -> Cow<'b, Ty> { diff --git a/crates/mun_hir/src/ty/primitives.rs b/crates/mun_hir/src/ty/primitives.rs index 33555553..5b98a03b 100644 --- a/crates/mun_hir/src/ty/primitives.rs +++ b/crates/mun_hir/src/ty/primitives.rs @@ -1,7 +1,4 @@ -use std::{ - fmt::{self}, - i128, i16, i32, i64, i8, u128, u16, u32, u64, u8, -}; +use std::fmt::{self}; use mun_target::{abi, abi::Integer}; diff --git a/crates/mun_language_server/src/change_fixture.rs b/crates/mun_language_server/src/change_fixture.rs index e5c2a36f..7fd2f826 100644 --- a/crates/mun_language_server/src/change_fixture.rs +++ b/crates/mun_language_server/src/change_fixture.rs @@ -12,7 +12,7 @@ pub const CURSOR_MARKER: &str = "$0"; /// indicated by `$0`. pub struct ChangeFixture { pub file_position: Option<(FileId, RangeOrOffset)>, - pub files: Vec, + pub _files: Vec, pub change: AnalysisChange, } @@ -54,7 +54,7 @@ impl ChangeFixture { ChangeFixture { file_position, - files, + _files: files, change, } } diff --git a/crates/mun_language_server/src/completion/context.rs b/crates/mun_language_server/src/completion/context.rs index 56727a20..9f66b2e3 100644 --- a/crates/mun_language_server/src/completion/context.rs +++ b/crates/mun_language_server/src/completion/context.rs @@ -21,7 +21,7 @@ pub(super) struct CompletionContext<'a> { /// True if the context is currently on a parameter pub is_param: bool, - /// True if we're at an ast::PathType + /// True if we're at an `ast::PathType` pub is_path_type: bool, /// The receiver if this is a field or method access, i.e. writing diff --git a/crates/mun_language_server/src/state/protocol.rs b/crates/mun_language_server/src/state/protocol.rs index c466cc50..e7927319 100644 --- a/crates/mun_language_server/src/state/protocol.rs +++ b/crates/mun_language_server/src/state/protocol.rs @@ -162,7 +162,7 @@ impl LanguageServerState { /// Sends a response to the client. This method logs the time it took us to /// reply to a request from the client. pub(super) fn respond(&mut self, response: lsp_server::Response) { - if let Some((_method, start)) = self.request_queue.incoming.complete(response.id.clone()) { + if let Some((_method, start)) = self.request_queue.incoming.complete(&response.id) { let duration = start.elapsed(); log::info!("handled req#{} in {:?}", response.id, duration); self.send(response.into()); diff --git a/crates/mun_language_server/tests/support.rs b/crates/mun_language_server/tests/support.rs index 5bcd86f9..6839b424 100644 --- a/crates/mun_language_server/tests/support.rs +++ b/crates/mun_language_server/tests/support.rs @@ -26,7 +26,7 @@ pub struct Project<'a> { tmp_dir: Option, } -impl<'a> Project<'a> { +impl Project<'_> { /// Constructs a project from a fixture. pub fn with_fixture(fixture: &str) -> Project<'_> { Project { diff --git a/crates/mun_memory/src/gc/mark_sweep.rs b/crates/mun_memory/src/gc/mark_sweep.rs index dc19a2dc..1f7f88ae 100644 --- a/crates/mun_memory/src/gc/mark_sweep.rs +++ b/crates/mun_memory/src/gc/mark_sweep.rs @@ -98,7 +98,7 @@ impl TraceEvent { match ty.kind() { TypeKind::Primitive(_) | TypeKind::Pointer(_) => None, TypeKind::Struct(s) => { - return if s.is_gc_struct() { + if s.is_gc_struct() { let deref_ptr = unsafe { ptr.cast::>().as_ref() }; Some(TraceEvent::Reference(*deref_ptr)) } else { @@ -107,7 +107,7 @@ impl TraceEvent { struct_type: ty.into_owned(), field_index: 0, })) - }; + } } TypeKind::Array(_) => Some(TraceEvent::Reference(ptr.cast())), } @@ -633,6 +633,7 @@ where NonNull::new_unchecked(ptr as *mut u8) } + #[allow(clippy::mutable_key_type)] fn map_array( new_allocations: &mut Vec>>, conversions: &HashMap, @@ -678,6 +679,7 @@ where }; } + #[allow(clippy::mutable_key_type)] fn map_type( new_allocations: &mut Vec>>, conversions: &HashMap, diff --git a/crates/mun_memory/src/type/mod.rs b/crates/mun_memory/src/type/mod.rs index 1bed3a0a..16d498da 100644 --- a/crates/mun_memory/src/type/mod.rs +++ b/crates/mun_memory/src/type/mod.rs @@ -25,7 +25,7 @@ use std::{ ptr::NonNull, sync::{ atomic::{AtomicUsize, Ordering}, - Arc, Once, + Arc, OnceLock, }, }; @@ -591,7 +591,7 @@ impl<'t> StructType<'t> { } } -impl<'t> Display for StructType<'t> { +impl Display for StructType<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!( "struct({}) {{", @@ -687,7 +687,7 @@ pub struct PointerType<'t> { store: &'t Arc, } -impl<'t> PointerType<'t> { +impl PointerType<'_> { /// Returns the type to which this pointer points pub fn pointee(&self) -> Type { // Safety: this operation is safe due to the lifetime constraints on this type @@ -705,7 +705,7 @@ impl<'t> PointerType<'t> { } } -impl<'t> Display for PointerType<'t> { +impl Display for PointerType<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!( "*{} {}", @@ -741,7 +741,7 @@ pub struct ArrayType<'t> { store: &'t Arc, } -impl<'t> ArrayType<'t> { +impl ArrayType<'_> { /// Returns the type of elements this array stores pub fn element_type(&self) -> Type { // Safety: this operation is safe due to the lifetime constraints on this type @@ -749,7 +749,7 @@ impl<'t> ArrayType<'t> { } } -impl<'t> Display for ArrayType<'t> { +impl Display for ArrayType<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_str("[")?; std::fmt::Display::fmt(&self.element_type(), f)?; @@ -1270,33 +1270,17 @@ impl_primitive_type!( /// Every type that has at least a type name also has a valid pointer type name impl HasStaticType for *mut T { fn type_info() -> &'static Type { - static mut VALUE: Option> = None; - static INIT: Once = Once::new(); - - let map = unsafe { - INIT.call_once(|| { - VALUE = Some(StaticTypeMap::default()); - }); - VALUE.as_ref().unwrap() - }; - - map.call_once::(|| T::type_info().pointer_type(true)) + static INIT: OnceLock> = OnceLock::new(); + INIT.get_or_init(StaticTypeMap::default) + .call_once::(|| T::type_info().pointer_type(true)) } } /// Every type that has at least a type name also has a valid pointer type name impl HasStaticType for *const T { fn type_info() -> &'static Type { - static mut VALUE: Option> = None; - static INIT: Once = Once::new(); - - let map = unsafe { - INIT.call_once(|| { - VALUE = Some(StaticTypeMap::default()); - }); - VALUE.as_ref().unwrap() - }; - - map.call_once::(|| T::type_info().pointer_type(false)) + static INIT: OnceLock> = OnceLock::new(); + INIT.get_or_init(StaticTypeMap::default) + .call_once::(|| T::type_info().pointer_type(false)) } } diff --git a/crates/mun_runtime/src/adt.rs b/crates/mun_runtime/src/adt.rs index 52e2751d..0690ab96 100644 --- a/crates/mun_runtime/src/adt.rs +++ b/crates/mun_runtime/src/adt.rs @@ -74,10 +74,10 @@ impl<'s> StructRef<'s> { /// Retrieves the value of the field corresponding to the specified /// `field_name`. - pub fn get>(&self, field_name: &str) -> Result - where - T: 's, - { + pub fn get + 's>( + &self, + field_name: &str, + ) -> Result { let type_info = self.type_info(); // Safety: `as_struct` is guaranteed to return `Some` for `StructRef`s. @@ -115,14 +115,11 @@ impl<'s> StructRef<'s> { /// Replaces the value of the field corresponding to the specified /// `field_name` and returns the old value. - pub fn replace>( + pub fn replace + 's>( &mut self, field_name: &str, value: T, - ) -> Result - where - T: 's, - { + ) -> Result { let type_info = self.type_info(); // Safety: `as_struct` is guaranteed to return `Some` for `StructRef`s. @@ -197,7 +194,7 @@ impl<'s> StructRef<'s> { } } -impl<'r> ArgumentReflection for StructRef<'r> { +impl ArgumentReflection for StructRef<'_> { fn type_info(&self, _runtime: &Runtime) -> Type { self.type_info() } @@ -267,7 +264,7 @@ impl<'s> Marshal<'s> for StructRef<'s> { } } -impl<'r> ReturnTypeReflection for StructRef<'r> { +impl ReturnTypeReflection for StructRef<'_> { /// Returns true if this specified type can be stored in an instance of this /// type fn accepts_type(ty: &Type) -> bool { diff --git a/crates/mun_runtime/src/lib.rs b/crates/mun_runtime/src/lib.rs index 5b541bb9..f7c0dbfb 100644 --- a/crates/mun_runtime/src/lib.rs +++ b/crates/mun_runtime/src/lib.rs @@ -658,19 +658,19 @@ pub struct InvokeErr<'name, T> { arguments: T, } -impl<'name, T> Debug for InvokeErr<'name, T> { +impl Debug for InvokeErr<'_, T> { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { write!(f, "{}", &self.msg) } } -impl<'name, T> Display for InvokeErr<'name, T> { +impl Display for InvokeErr<'_, T> { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { write!(f, "{}", &self.msg) } } -impl<'name, T: InvokeArgs> InvokeErr<'name, T> { +impl InvokeErr<'_, T> { /// Retries a function invocation once, resulting in a potentially /// successful invocation. // FIXME: `unwrap_or_else` does not compile for `StructRef`, due to diff --git a/crates/mun_runtime/tests/threading.rs b/crates/mun_runtime/tests/threading.rs index 4f71fed4..ad9f7d35 100644 --- a/crates/mun_runtime/tests/threading.rs +++ b/crates/mun_runtime/tests/threading.rs @@ -2,4 +2,6 @@ use mun_runtime::Runtime; // Ensures the [`Runtime`] is Send trait IsSend: Send {} + +#[allow(unused)] impl IsSend for Runtime {} diff --git a/crates/mun_runtime_capi/src/runtime.rs b/crates/mun_runtime_capi/src/runtime.rs index 43404226..92513f69 100644 --- a/crates/mun_runtime_capi/src/runtime.rs +++ b/crates/mun_runtime_capi/src/runtime.rs @@ -124,60 +124,66 @@ pub unsafe extern "C" fn mun_runtime_create( .map_err(|e| format!("invalid argument 'library_path': {e}"))); let handle = try_deref_mut!(handle); - if options.num_functions > 0 && options.functions.is_null() { - return ErrorHandle::new("invalid argument: 'functions' is null pointer."); - } - - let type_table = TypeTable::default(); - let user_functions = mun_error_try!(std::slice::from_raw_parts( - options.functions, - options.num_functions as usize - ) - .iter() - .map(|def| { - let name = - try_convert_c_string(def.name).map_err(|e| format!("invalid function name: {e}"))?; - let return_type = ManuallyDrop::new( - def.return_type - .to_owned() - .map_err(|e| format!("invalid function '{name}': 'return_type': {e}"))?, - ) - .deref() - .clone(); - - if def.num_args > 0 && def.arg_types.is_null() { - return Err(format!( - "invalid function '{name}': 'arg_types' is null pointer." - )); + let user_functions = if options.functions.is_null() { + if options.num_functions > 0 { + return ErrorHandle::new("invalid argument: 'functions' is null pointer."); } + None + } else { + Some(std::slice::from_raw_parts( + options.functions, + options.num_functions as usize, + )) + }; - let arg_types: Vec<_> = if def.num_args > 0 { - std::slice::from_raw_parts(def.arg_types, def.num_args as usize) - .iter() - .enumerate() - .map(|(i, arg)| -> Result { - let ty = (*arg).to_owned().map_err(|e| { - format!("invalid function '{}': argument #{}: {}", name, i + 1, e) - })?; - Ok(ManuallyDrop::new(ty).deref().clone()) - }) - .collect::>()? - } else { - Vec::new() - }; - - Ok(FunctionDefinition { - prototype: FunctionPrototype { - name: name.to_owned(), - signature: FunctionSignature { - arg_types, - return_type, + let type_table = TypeTable::default(); + let user_functions = mun_error_try!(user_functions + .into_iter() + .flatten() + .map(|def| { + let name = try_convert_c_string(def.name) + .map_err(|e| format!("invalid function name: {e}"))?; + let return_type = ManuallyDrop::new( + def.return_type + .to_owned() + .map_err(|e| format!("invalid function '{name}': 'return_type': {e}"))?, + ) + .deref() + .clone(); + + if def.num_args > 0 && def.arg_types.is_null() { + return Err(format!( + "invalid function '{name}': 'arg_types' is null pointer." + )); + } + + let arg_types: Vec<_> = if def.num_args > 0 { + std::slice::from_raw_parts(def.arg_types, def.num_args as usize) + .iter() + .enumerate() + .map(|(i, arg)| -> Result { + let ty = (*arg).to_owned().map_err(|e| { + format!("invalid function '{}': argument #{}: {}", name, i + 1, e) + })?; + Ok(ManuallyDrop::new(ty).deref().clone()) + }) + .collect::>()? + } else { + Vec::new() + }; + + Ok(FunctionDefinition { + prototype: FunctionPrototype { + name: name.to_owned(), + signature: FunctionSignature { + arg_types, + return_type, + }, }, - }, - fn_ptr: def.fn_ptr, + fn_ptr: def.fn_ptr, + }) }) - }) - .collect::>()); + .collect::>()); let runtime_options = mun_runtime::RuntimeOptions { library_path: library_path.into(), diff --git a/crates/mun_runtime_capi/src/test_util.rs b/crates/mun_runtime_capi/src/test_util.rs index 9d8cfc56..9ef58dce 100644 --- a/crates/mun_runtime_capi/src/test_util.rs +++ b/crates/mun_runtime_capi/src/test_util.rs @@ -62,6 +62,7 @@ fn make_runtime(lib_path: &Path) -> Runtime { handle } +/// A macro that generates tests for invalid runtime arguments #[macro_export] macro_rules! test_invalid_runtime { ($( diff --git a/crates/mun_syntax/src/ast.rs b/crates/mun_syntax/src/ast.rs index 01e64795..82cfc286 100644 --- a/crates/mun_syntax/src/ast.rs +++ b/crates/mun_syntax/src/ast.rs @@ -72,10 +72,10 @@ impl Iterator for AstChildren { } } -fn child_opt(parent: &P) -> Option { +fn child_opt(parent: &P) -> Option { children(parent).next() } -fn children(parent: &P) -> AstChildren { +fn children(parent: &P) -> AstChildren { AstChildren::new(parent.syntax()) } diff --git a/crates/mun_syntax/src/parsing.rs b/crates/mun_syntax/src/parsing.rs index beebf419..d4759b2f 100644 --- a/crates/mun_syntax/src/parsing.rs +++ b/crates/mun_syntax/src/parsing.rs @@ -17,8 +17,6 @@ pub struct ParseError(pub String); /// `TokenSource` abstract the source of the tokens. trait TokenSource { - fn current(&self) -> Token; - /// Lookahead n token fn lookahead_nth(&self, n: usize) -> Token; diff --git a/crates/mun_syntax/src/parsing/text_token_source.rs b/crates/mun_syntax/src/parsing/text_token_source.rs index d622057c..4df1028a 100644 --- a/crates/mun_syntax/src/parsing/text_token_source.rs +++ b/crates/mun_syntax/src/parsing/text_token_source.rs @@ -14,7 +14,7 @@ pub(crate) struct TextTokenSource<'t> { /// | | ^- /// 0 7 10 /// ``` - /// (token, start_offset): `[(struct, 0), (Foo, 7), (;, 10)]` + /// (token, `start_offset)`: `[(struct, 0), (Foo, 7), (;, 10)]` start_offsets: Vec, /// non-whitespace/comment tokens /// ```non-rust @@ -28,11 +28,7 @@ pub(crate) struct TextTokenSource<'t> { curr: (PToken, usize), } -impl<'t> TokenSource for TextTokenSource<'t> { - fn current(&self) -> PToken { - self.curr.0 - } - +impl TokenSource for TextTokenSource<'_> { fn lookahead_nth(&self, n: usize) -> PToken { mk_token(self.curr.1 + n, &self.start_offsets, &self.tokens) } diff --git a/crates/mun_syntax/src/parsing/text_tree_sink.rs b/crates/mun_syntax/src/parsing/text_tree_sink.rs index bfc86093..d169e74f 100644 --- a/crates/mun_syntax/src/parsing/text_tree_sink.rs +++ b/crates/mun_syntax/src/parsing/text_tree_sink.rs @@ -23,7 +23,7 @@ enum State { PendingFinish, } -impl<'a> TreeSink for TextTreeSink<'a> { +impl TreeSink for TextTreeSink<'_> { fn token(&mut self, kind: SyntaxKind, n_tokens: u8) { match mem::replace(&mut self.state, State::Normal) { State::PendingStart => unreachable!(), diff --git a/crates/mun_target/src/spec.rs b/crates/mun_target/src/spec.rs index 0daf05e5..baf4edc9 100644 --- a/crates/mun_target/src/spec.rs +++ b/crates/mun_target/src/spec.rs @@ -23,7 +23,7 @@ pub struct Target { /// String to use as the `target_pointer_width` `cfg` variable. pub pointer_width: u32, - /// The name of the architecture. For example "x86" or "x86_64", "arm", + /// The name of the architecture. For example "x86" or "`x86_64`", "arm", /// "aarch64" pub arch: Cow<'static, str>, @@ -43,7 +43,7 @@ pub struct TargetOptions { /// Used as the `target_endian` `cfg` variable. Defaults to little endian. pub endian: Endian, - /// Width of c_int type + /// Width of `c_int` type pub c_int_width: String, /// The name of the OS diff --git a/rust-toolchain b/rust-toolchain index 80627411..6b4de0a4 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.74.1 +1.83.0