diff --git a/Cargo.lock b/Cargo.lock index 485fcc1..33370d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,17 +68,18 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.59.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.59.0", + "once_cell", + "windows-sys", ] [[package]] @@ -121,15 +122,15 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "bon" -version = "3.3.1" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61030e4aaccae9727cc388843dcc7ad1fb9e1ccdef5571e3e8393976b49b74ce" +checksum = "fe7acc34ff59877422326db7d6f2d845a582b16396b6b08194942bf34c6528ab" dependencies = [ "bon-macros", "rustversion", @@ -137,9 +138,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.3.1" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67d5d25cc9bd33120702000acc60836db15f06eabc4466230bf79dc80bd0a6ee" +checksum = "4159dd617a7fbc9be6a692fe69dc2954f8e6bb6bb5e4d7578467441390d77fd0" dependencies = [ "darling", "ident_case", @@ -219,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.6" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "shlex", ] @@ -261,9 +262,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -271,9 +272,9 @@ dependencies = [ [[package]] name = "clap-num" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7" +checksum = "822c4000301ac390e65995c62207501e3ef800a1fc441df913a5e8e4dc374816" dependencies = [ "num-traits", ] @@ -290,9 +291,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -303,9 +304,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck", "proc-macro2", @@ -397,9 +398,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "darling" @@ -488,7 +489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -526,7 +527,7 @@ dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -561,7 +562,7 @@ dependencies = [ "supercilex-tests", "sysexits", "tempfile", - "thiserror 2.0.9", + "thiserror 2.0.11", "thousands", "tokio", "tracing", @@ -593,7 +594,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets", ] [[package]] @@ -604,9 +617,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "half" @@ -666,9 +679,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", @@ -682,13 +695,13 @@ checksum = "808ac4a31fb1d3ac6e2ce65bff7be1710ef195553d3098bef95b58d0cf1d94bf" [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -714,9 +727,9 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -753,15 +766,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "loom" @@ -793,9 +806,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -860,7 +873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -871,9 +884,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "plotters" @@ -909,14 +922,14 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] name = "prettyplease" -version = "0.2.25" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", "syn", @@ -924,24 +937,24 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "public-api" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f92b8b49137df6a17d01024ace13d53e5caf1e5860c6da75ae1eb638647e99" +checksum = "31529be2a00213a5eeca25ed983569db17036d90de2abe40c55aceaa0915795b" dependencies = [ "hashbag", "rustdoc-types", "serde", "serde_json", - "thiserror 2.0.9", + "thiserror 2.0.11", ] [[package]] @@ -955,20 +968,20 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "libc", "rand_chacha", "rand_core", + "zerocopy 0.8.14", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -976,18 +989,19 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" dependencies = [ - "getrandom", + "getrandom 0.3.1", + "zerocopy 0.8.14", ] [[package]] name = "rand_distr" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +checksum = "ddc3b5afe4c995c44540865b8ca5c52e6a59fa362da96c5d30886930ddc8da1c" dependencies = [ "num-traits", "rand", @@ -995,9 +1009,9 @@ dependencies = [ [[package]] name = "rand_xoshiro" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" dependencies = [ "rand_core", ] @@ -1083,9 +1097,9 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "rstest" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2c585be59b6b5dd66a9d2084aa1d8bd52fbdb806eafdeffb52791147862035" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" dependencies = [ "rstest_macros", "rustc_version", @@ -1093,9 +1107,9 @@ dependencies = [ [[package]] name = "rstest_macros" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ "cfg-if", "glob", @@ -1132,31 +1146,31 @@ dependencies = [ "cargo-manifest", "cargo_metadata", "serde", - "thiserror 2.0.9", + "thiserror 2.0.11", "toml", "tracing", ] [[package]] name = "rustdoc-types" -version = "0.32.2" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd5cb7a0c0a5a4f6bc429274fc1073d395237c83ef13d0ac728e0f95f5499ca" +checksum = "bf583db9958b3161d7980a56a8ee3c25e1a40708b81259be72584b7e0ea07c95" dependencies = [ "serde", ] [[package]] name = "rustix" -version = "0.38.42" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -1188,9 +1202,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] @@ -1217,9 +1231,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.134" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -1253,9 +1267,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "similar" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "smallvec" @@ -1282,7 +1296,7 @@ dependencies = [ "tempfile", "wait-timeout", "walkdir", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -1302,9 +1316,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "supercilex-tests" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760899a36631d7a88a2e4baae7f28862251988c8ec89fc473b25db8c047f0161" +checksum = "81a311919f4da70cea611f0c8c59ef192aa9da73e3b3c8b1ba1f6b3857826ac5" dependencies = [ "clap_builder", "expect-test", @@ -1314,9 +1328,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.92" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -1331,15 +1345,16 @@ checksum = "3a70e00b0ea6c3e7154dfc48fee004bf61bdc154fd99b7e17c05318503b9660b" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", + "getrandom 0.2.15", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -1349,7 +1364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" dependencies = [ "rustix", - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -1363,11 +1378,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.9", + "thiserror-impl 2.0.11", ] [[package]] @@ -1383,9 +1398,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", @@ -1420,9 +1435,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "pin-project-lite", @@ -1577,9 +1592,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "utf8parse" @@ -1589,9 +1604,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "wait-timeout" @@ -1618,22 +1633,32 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", @@ -1645,9 +1670,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1655,9 +1680,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -1668,15 +1693,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -1704,7 +1732,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys", ] [[package]] @@ -1777,15 +1805,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -1861,13 +1880,22 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "ad699df48212c6cc6eb4435f35500ac6fd3b9913324f938aea302022ce19d310" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -1875,7 +1903,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a367f292d93d4eab890745e75a778da40909cab4d6ff8173693812f79c4a2468" +dependencies = [ + "zerocopy-derive 0.8.14", ] [[package]] @@ -1888,3 +1925,14 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zerocopy-derive" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml index 93df0bf..1a3236a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,24 +10,24 @@ categories = ["command-line-utilities", "development-tools", "development-tools: license = "Apache-2.0" [dependencies] -bon = "3.3.1" +bon = "3.3.2" bytesize = "1.3.0" cfg-if = "1.0.0" -clap = { version = "4.5.23", features = ["derive", "wrap_help"] } -clap-num = "1.1.1" +clap = { version = "4.5.27", features = ["derive", "wrap_help"] } +clap-num = "1.2.0" clap-verbosity-flag = { package = "clap-verbosity-flag2", version = "2.1.1" } env_logger = { version = "0.11.6", default-features = false, features = ["auto-color"] } error-stack = { version = "0.5.0", default-features = false, features = ["std"] } io-adapters = "0.4.0" itoa = "1.0.14" -log = { version = "0.4.22", features = ["release_max_level_info"] } -rand = { version = "0.8.5", default-features = false, features = ["std"] } -rand_distr = "0.4.3" -rand_xoshiro = "0.6.0" +log = { version = "0.4.25", features = ["release_max_level_info"] } +rand = { version = "0.9.0", default-features = false, features = ["std"] } +rand_distr = "0.5.0" +rand_xoshiro = "0.7.0" sysexits = "0.8.5" -thiserror = "2.0.9" +thiserror = "2.0.11" thousands = "0.2.0" -tokio = { version = "1.42.0", features = ["rt"] } +tokio = { version = "1.43.0", features = ["rt"] } tracing = { version = "0.1.41", features = ["log"], optional = true } tracing-log = { version = "0.2.0", optional = true } tracing-subscriber = { version = "0.3.19", optional = true } @@ -35,16 +35,16 @@ tracing-tracy = { version = "0.11.4", features = ["flush-on-exit"], optional = t tracy-client = { version = "0.18.0", optional = true } [target.'cfg(unix)'.dependencies] -rustix = { version = "0.38.42", features = ["fs", "thread"] } +rustix = { version = "0.38.44", features = ["fs", "thread"] } [dev-dependencies] criterion = "0.5.1" expect-test = "1.5.1" more-asserts = "0.3.1" -rand = "0.8.5" -rstest = { version = "0.23.0", default-features = false } -supercilex-tests = "0.4.13" -tempfile = "3.14.0" +rand = "0.9.0" +rstest = { version = "0.24.0", default-features = false } +supercilex-tests = "0.4.14" +tempfile = "3.15.0" trycmd = "0.15.8" [build-dependencies] diff --git a/api.golden b/api.golden index 54e5437..96036f7 100644 --- a/api.golden +++ b/api.golden @@ -39,8 +39,6 @@ impl thousands::traits::Separable for ftzz::Error where T: core::fmt::Display pub fn ftzz::Error::separate_by_policy(&self, policy: thousands::policies::SeparatorPolicy<'_>) -> alloc::string::String impl tracing::instrument::Instrument for ftzz::Error impl tracing::instrument::WithSubscriber for ftzz::Error -impl ppv_lite86::types::VZip for ftzz::Error where V: ppv_lite86::types::MultiLane -pub fn ftzz::Error::vzip(self) -> V pub enum ftzz::NumFilesWithRatioError pub ftzz::NumFilesWithRatioError::InvalidRatio pub ftzz::NumFilesWithRatioError::InvalidRatio::file_to_dir_ratio: core::num::nonzero::NonZeroU64 @@ -80,8 +78,6 @@ impl thousands::traits::Separable for ftzz::NumFilesWithRatioError where T: c pub fn ftzz::NumFilesWithRatioError::separate_by_policy(&self, policy: thousands::policies::SeparatorPolicy<'_>) -> alloc::string::String impl tracing::instrument::Instrument for ftzz::NumFilesWithRatioError impl tracing::instrument::WithSubscriber for ftzz::NumFilesWithRatioError -impl ppv_lite86::types::VZip for ftzz::NumFilesWithRatioError where V: ppv_lite86::types::MultiLane -pub fn ftzz::NumFilesWithRatioError::vzip(self) -> V pub struct ftzz::Generator impl ftzz::Generator pub fn ftzz::Generator::generate(self, output: &mut impl core::fmt::Write) -> error_stack::result::Result<(), ftzz::Error> @@ -113,25 +109,23 @@ impl core::convert::From for ftzz::Generator pub fn ftzz::Generator::from(t: T) -> T impl tracing::instrument::Instrument for ftzz::Generator impl tracing::instrument::WithSubscriber for ftzz::Generator -impl ppv_lite86::types::VZip for ftzz::Generator where V: ppv_lite86::types::MultiLane -pub fn ftzz::Generator::vzip(self) -> V -pub struct ftzz::GeneratorBuilder -impl ftzz::GeneratorBuilder -pub fn ftzz::GeneratorBuilder::build(self) -> ftzz::Generator where S: generator_builder::IsComplete -pub fn ftzz::GeneratorBuilder::bytes_exact(self, value: bool) -> ftzz::GeneratorBuilder> where ::BytesExact: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::files_exact(self, value: bool) -> ftzz::GeneratorBuilder> where ::FilesExact: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::fill_byte(self, value: u8) -> ftzz::GeneratorBuilder> where ::FillByte: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::max_depth(self, value: u32) -> ftzz::GeneratorBuilder> where ::MaxDepth: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_bytes_exact(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::BytesExact: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_files_exact(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::FilesExact: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_fill_byte(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::FillByte: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_max_depth(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::MaxDepth: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_num_bytes(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::NumBytes: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::maybe_seed(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::Seed: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::num_bytes(self, value: u64) -> ftzz::GeneratorBuilder> where ::NumBytes: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::num_files_with_ratio(self, value: ftzz::NumFilesWithRatio) -> ftzz::GeneratorBuilder> where ::NumFilesWithRatio: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::root_dir(self, value: impl core::convert::Into) -> ftzz::GeneratorBuilder> where ::RootDir: bon::builder_state::IsUnset -pub fn ftzz::GeneratorBuilder::seed(self, value: u64) -> ftzz::GeneratorBuilder> where ::Seed: bon::builder_state::IsUnset +pub struct ftzz::GeneratorBuilder +impl ftzz::GeneratorBuilder +pub fn ftzz::GeneratorBuilder::build(self) -> ftzz::Generator where S: ftzz::generator::generator_builder::IsComplete +pub fn ftzz::GeneratorBuilder::bytes_exact(self, value: bool) -> ftzz::GeneratorBuilder> where ::BytesExact: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::files_exact(self, value: bool) -> ftzz::GeneratorBuilder> where ::FilesExact: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::fill_byte(self, value: u8) -> ftzz::GeneratorBuilder> where ::FillByte: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::max_depth(self, value: u32) -> ftzz::GeneratorBuilder> where ::MaxDepth: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_bytes_exact(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::BytesExact: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_files_exact(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::FilesExact: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_fill_byte(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::FillByte: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_max_depth(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::MaxDepth: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_num_bytes(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::NumBytes: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::maybe_seed(self, value: core::option::Option) -> ftzz::GeneratorBuilder> where ::Seed: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::num_bytes(self, value: u64) -> ftzz::GeneratorBuilder> where ::NumBytes: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::num_files_with_ratio(self, value: ftzz::NumFilesWithRatio) -> ftzz::GeneratorBuilder> where ::NumFilesWithRatio: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::root_dir(self, value: impl core::convert::Into) -> ftzz::GeneratorBuilder> where ::RootDir: bon::builder_state::IsUnset +pub fn ftzz::GeneratorBuilder::seed(self, value: u64) -> ftzz::GeneratorBuilder> where ::Seed: bon::builder_state::IsUnset impl core::marker::Freeze for ftzz::GeneratorBuilder impl core::marker::Send for ftzz::GeneratorBuilder impl core::marker::Sync for ftzz::GeneratorBuilder @@ -156,8 +150,6 @@ impl core::convert::From for ftzz::GeneratorBuilder pub fn ftzz::GeneratorBuilder::from(t: T) -> T impl tracing::instrument::Instrument for ftzz::GeneratorBuilder impl tracing::instrument::WithSubscriber for ftzz::GeneratorBuilder -impl ppv_lite86::types::VZip for ftzz::GeneratorBuilder where V: ppv_lite86::types::MultiLane -pub fn ftzz::GeneratorBuilder::vzip(self) -> V pub struct ftzz::NumFilesWithRatio impl ftzz::NumFilesWithRatio pub fn ftzz::NumFilesWithRatio::from_num_files(num_files: core::num::nonzero::NonZeroU64) -> Self @@ -203,5 +195,3 @@ impl core::convert::From for ftzz::NumFilesWithRatio pub fn ftzz::NumFilesWithRatio::from(t: T) -> T impl tracing::instrument::Instrument for ftzz::NumFilesWithRatio impl tracing::instrument::WithSubscriber for ftzz::NumFilesWithRatio -impl ppv_lite86::types::VZip for ftzz::NumFilesWithRatio where V: ppv_lite86::types::MultiLane -pub fn ftzz::NumFilesWithRatio::vzip(self) -> V diff --git a/src/core/file_contents.rs b/src/core/file_contents.rs index 9fff525..63eba37 100644 --- a/src/core/file_contents.rs +++ b/src/core/file_contents.rs @@ -1,7 +1,7 @@ use std::{fs::File, io, io::Read}; use cfg_if::cfg_if; -use rand::{RngCore, SeedableRng}; +use rand::{RngCore, SeedableRng, TryRngCore}; use rand_distr::Normal; use rand_xoshiro::Xoshiro256PlusPlus; @@ -213,10 +213,7 @@ fn write_bytes<'a, R: RngCore + 'static>( kind: impl Into>, ) -> io::Result<()> { let copied = match kind.into() { - BytesKind::Random(random) => { - // TODO use adapter when it's available - io::copy(&mut (random as &mut dyn RngCore).take(num), &mut file) - } + BytesKind::Random(random) => io::copy(&mut random.read_adapter().take(num), &mut file), BytesKind::Fixed(byte) => io::copy(&mut io::repeat(byte).take(num), &mut file), }?; debug_assert_eq!(num, copied); diff --git a/src/core/mod.rs b/src/core/mod.rs index bcfff9e..bf4f44b 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -1,5 +1,5 @@ -use rand::{Rng, distributions::Distribution}; -use rand_distr::Normal; +use rand::Rng; +use rand_distr::{Distribution, Normal}; pub use scheduler::{GeneratorStats, run}; pub use tasks::{DynamicGenerator, GeneratorBytes, StaticGenerator}; diff --git a/tests/generator.rs b/tests/generator.rs index 3c5956e..9d04269 100644 --- a/tests/generator.rs +++ b/tests/generator.rs @@ -283,17 +283,17 @@ fn fill_byte_is_respected(#[case] fill_byte: u8) { fn fuzz_test() { let dir = InspectableTempDir::new(); - let mut rng = rand::thread_rng(); - let num_files = rng.gen_range(1..25_000); - let num_bytes = if rng.r#gen() { - rng.gen_range(0..100_000) + let mut rng = rand::rng(); + let num_files = rng.random_range(1..25_000); + let num_bytes = if rng.random() { + rng.random_range(0..100_000) } else { 0 }; - let max_depth = rng.gen_range(0..100); - let ratio = rng.gen_range(1..num_files); - let files_exact = rng.r#gen(); - let bytes_exact = rng.r#gen(); + let max_depth = rng.random_range(0..100); + let ratio = rng.random_range(1..num_files); + let files_exact = rng.random(); + let bytes_exact = rng.random(); let g = Generator::builder() .root_dir(dir.path.clone())