difftreelog
style fix clippy warnings
in: master
19 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -41,9 +41,9 @@
[[package]]
name = "anstream"
-version = "0.6.14"
+version = "0.6.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
dependencies = [
"anstyle",
"anstyle-parse",
@@ -56,36 +56,36 @@
[[package]]
name = "anstyle"
-version = "1.0.7"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
[[package]]
name = "anstyle-parse"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
-version = "1.0.3"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
+checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
]
[[package]]
name = "anstyle-wincon"
-version = "3.0.3"
+version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
dependencies = [
"anstyle",
- "windows-sys",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -114,9 +114,9 @@
[[package]]
name = "bitflags"
-version = "2.5.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "block-buffer"
@@ -134,10 +134,19 @@
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
name = "cc"
-version = "1.0.97"
+version = "1.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
+checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+dependencies = [
+ "shlex",
+]
[[package]]
name = "cfg-if"
@@ -147,9 +156,9 @@
[[package]]
name = "clap"
-version = "4.5.4"
+version = "4.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
dependencies = [
"clap_builder",
"clap_derive",
@@ -157,9 +166,9 @@
[[package]]
name = "clap_builder"
-version = "4.5.2"
+version = "4.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
dependencies = [
"anstream",
"anstyle",
@@ -169,36 +178,36 @@
[[package]]
name = "clap_complete"
-version = "4.5.2"
+version = "4.5.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
+checksum = "531d7959c5bbb6e266cecdd0f20213639c3a5c3e4d615f97db87661745f781ff"
dependencies = [
"clap",
]
[[package]]
name = "clap_derive"
-version = "4.5.4"
+version = "4.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
]
[[package]]
name = "clap_lex"
-version = "0.7.0"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
[[package]]
name = "colorchoice"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
[[package]]
name = "console"
@@ -209,7 +218,7 @@
"encode_unicode",
"lazy_static",
"libc",
- "windows-sys",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -220,9 +229,9 @@
[[package]]
name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
dependencies = [
"libc",
]
@@ -272,7 +281,7 @@
dependencies = [
"anyhow",
"bumpalo",
- "indexmap 2.2.6",
+ "indexmap 2.4.0",
"rustc-hash",
"serde",
"unicode-width",
@@ -286,9 +295,9 @@
[[package]]
name = "either"
-version = "1.12.0"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "encode_unicode"
@@ -309,14 +318,14 @@
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
dependencies = [
"libc",
- "windows-sys",
+ "windows-sys 0.52.0",
]
[[package]]
name = "fastrand"
-version = "2.1.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "fnv"
@@ -392,9 +401,9 @@
[[package]]
name = "indexmap"
-version = "2.2.6"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
dependencies = [
"equivalent",
"hashbrown 0.14.5",
@@ -421,9 +430,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"
@@ -524,7 +533,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
]
[[package]]
@@ -542,7 +551,8 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
+ "syn-dissect-closure",
]
[[package]]
@@ -620,15 +630,15 @@
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "libjsonnet"
@@ -665,18 +675,18 @@
[[package]]
name = "logos"
-version = "0.14.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "161971eb88a0da7ae0c333e1063467c5b5727e7fb6b710b8db4814eade3a42e8"
+checksum = "ff1ceb190eb9bdeecdd8f1ad6a71d6d632a50905948771718741b5461fb01e13"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-codegen"
-version = "0.14.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e31badd9de5131fdf4921f6473d457e3dd85b11b7f091ceb50e4df7c3eeb12a"
+checksum = "90be66cb7bd40cb5cc2e9cfaf2d1133b04a3d93b72344267715010a466e0915a"
dependencies = [
"beef",
"fnv",
@@ -684,23 +694,23 @@
"proc-macro2",
"quote",
"regex-syntax",
- "syn 2.0.64",
+ "syn 2.0.76",
]
[[package]]
name = "logos-derive"
-version = "0.14.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c2a69b3eb68d5bd595107c9ee58d7e07fe2bb5e360cc85b0f084dedac80de0a"
+checksum = "45154231e8e96586b39494029e58f12f8ffcb5ecf80333a603a13aa205ea8cbd"
dependencies = [
"logos-codegen",
]
[[package]]
name = "lru"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
dependencies = [
"hashbrown 0.14.5",
]
@@ -713,18 +723,9 @@
[[package]]
name = "memchr"
-version = "2.7.2"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
-
-[[package]]
-name = "memoffset"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
-dependencies = [
- "autocfg",
-]
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "mimalloc-sys"
@@ -747,9 +748,9 @@
[[package]]
name = "num-bigint"
-version = "0.4.5"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
dependencies = [
"num-integer",
"num-traits",
@@ -811,9 +812,9 @@
[[package]]
name = "peg"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a625d12ad770914cbf7eff6f9314c3ef803bfe364a1b20bc36ddf56673e71e5"
+checksum = "295283b02df346d1ef66052a757869b2876ac29a6bb0ac3f5f7cd44aebe40e8f"
dependencies = [
"peg-macros",
"peg-runtime",
@@ -821,9 +822,9 @@
[[package]]
name = "peg-macros"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f241d42067ed3ab6a4fece1db720838e1418f36d868585a27931f95d6bc03582"
+checksum = "bdad6a1d9cf116a059582ce415d5f5566aabcd4008646779dab7fdc2a9a9d426"
dependencies = [
"peg-runtime",
"proc-macro2",
@@ -838,15 +839,18 @@
[[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 = "proc-macro2"
-version = "1.0.82"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
@@ -862,9 +866,9 @@
[[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",
]
@@ -919,18 +923,18 @@
[[package]]
name = "redox_syscall"
-version = "0.5.1"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
dependencies = [
"bitflags",
]
[[package]]
name = "regex"
-version = "1.10.4"
+version = "1.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
dependencies = [
"aho-corasick",
"memchr",
@@ -940,9 +944,9 @@
[[package]]
name = "regex-automata"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
dependencies = [
"aho-corasick",
"memchr",
@@ -951,19 +955,18 @@
[[package]]
name = "regex-syntax"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
[[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",
"text-size",
]
@@ -984,7 +987,7 @@
"errno",
"libc",
"linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -1001,31 +1004,32 @@
[[package]]
name = "serde"
-version = "1.0.202"
+version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.202"
+version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
]
[[package]]
name = "serde_json"
-version = "1.0.117"
+version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
dependencies = [
"itoa",
+ "memchr",
"ryu",
"serde",
]
@@ -1075,10 +1079,16 @@
]
[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[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 = "smallvec"
@@ -1088,15 +1098,15 @@
[[package]]
name = "stacker"
-version = "0.1.15"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+checksum = "95a5daa25ea337c85ed954c0496e3bdd2c7308cc3b24cf7b50d04876654c579f"
dependencies = [
"cc",
"cfg-if",
"libc",
"psm",
- "winapi",
+ "windows-sys 0.36.1",
]
[[package]]
@@ -1124,9 +1134,9 @@
[[package]]
name = "syn"
-version = "2.0.64"
+version = "2.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f"
+checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
dependencies = [
"proc-macro2",
"quote",
@@ -1134,15 +1144,27 @@
]
[[package]]
+name = "syn-dissect-closure"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "343bae741672e4b94421cbe93f9794ba9a061434272f7e3a29ff43be26be3ac9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.76",
+]
+
+[[package]]
name = "tempfile"
-version = "3.10.1"
+version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
dependencies = [
"cfg-if",
"fastrand",
+ "once_cell",
"rustix",
- "windows-sys",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -1165,22 +1187,22 @@
[[package]]
name = "thiserror"
-version = "1.0.61"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.61"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
]
[[package]]
@@ -1203,21 +1225,21 @@
[[package]]
name = "unicode-width"
-version = "0.1.12"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
[[package]]
name = "utf8parse"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[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 = "wasi"
@@ -1226,99 +1248,129 @@
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows_aarch64_msvc 0.36.1",
+ "windows_i686_gnu 0.36.1",
+ "windows_i686_msvc 0.36.1",
+ "windows_x86_64_gnu 0.36.1",
+ "windows_x86_64_msvc 0.36.1",
]
[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-sys"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
[[package]]
name = "windows-sys"
-version = "0.52.0"
+version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
"windows_i686_gnullvm",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
"windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_x86_64_msvc 0.52.6",
]
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.5"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.5"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.5"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "xshell"
@@ -1341,7 +1393,7 @@
dependencies = [
"anyhow",
"clap",
- "indexmap 2.2.6",
+ "indexmap 2.4.0",
"itertools",
"proc-macro2",
"quote",
@@ -1360,20 +1412,21 @@
[[package]]
name = "zerocopy"
-version = "0.7.34"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
+ "byteorder",
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.7.34"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.64",
+ "syn 2.0.76",
]
Cargo.tomldiffbeforeafterboth--- a/Cargo.toml
+++ b/Cargo.toml
@@ -89,6 +89,7 @@
lru = "0.12.3"
json-structural-diff = "0.1.0"
+syn-dissect-closure = "0.1.0"
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
@@ -107,9 +108,9 @@
all = "warn"
[workspace.lints.clippy]
-all = "warn"
-nursery = "warn"
-pedantic = "warn"
+all = { level = "warn", priority = -1 }
+nursery = { level = "warn", priority = -1 }
+pedantic = { level = "warn", priority = -1 }
ptr_arg = "allow"
# Too verbose
bindings/jsonnet/src/native.rsdiffbeforeafterboth--- a/bindings/jsonnet/src/native.rs
+++ b/bindings/jsonnet/src/native.rs
@@ -20,6 +20,7 @@
/// - `ctx` User pointer, given in `jsonnet_native_callback`.
/// - `argv` Array of arguments from Jsonnet code.
/// - `param` success Set this byref param to 1 to indicate success and 0 for failure.
+///
/// Returns the content of the imported file, or an error message.
type JsonnetNativeCallback = unsafe extern "C" fn(
ctx: *const c_void,
cmds/jrsonnet-fmt/src/comments.rsdiffbeforeafterboth--- a/cmds/jrsonnet-fmt/src/comments.rs
+++ b/cmds/jrsonnet-fmt/src/comments.rs
@@ -20,7 +20,7 @@
let Ok(c) = c else {
let mut text = c.as_ref().unwrap_err() as &str;
while !text.is_empty() {
- let pos = text.find(|c| c == '\n' || c == '\t').unwrap_or(text.len());
+ let pos = text.find(['\n', '\t']).unwrap_or(text.len());
let sliced = &text[..pos];
p!(out, string(sliced.to_string()));
text = &text[pos..];
cmds/jrsonnet-fmt/src/tests.rsdiffbeforeafterboth--- a/cmds/jrsonnet-fmt/src/tests.rs
+++ b/cmds/jrsonnet-fmt/src/tests.rs
@@ -75,5 +75,5 @@
b: '',
},
}"
- )))
+ )));
}
crates/jrsonnet-evaluator/src/function/arglike.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/function/arglike.rs
+++ b/crates/jrsonnet-evaluator/src/function/arglike.rs
@@ -91,6 +91,7 @@
handler: &mut dyn FnMut(&IStr, Thunk<Val>) -> Result<()>,
) -> Result<()>;
fn named_names(&self, handler: &mut dyn FnMut(&IStr));
+ fn is_empty(&self) -> bool;
}
impl ArgsLike for Vec<Val> {
@@ -117,6 +118,9 @@
Ok(())
}
fn named_names(&self, _handler: &mut dyn FnMut(&IStr)) {}
+ fn is_empty(&self) -> bool {
+ self.is_empty()
+ }
}
impl ArgsLike for ArgsDesc {
@@ -173,6 +177,10 @@
handler(name);
}
}
+
+ fn is_empty(&self) -> bool {
+ self.unnamed.is_empty() && self.named.is_empty()
+ }
}
impl<V: ArgLike, S> ArgsLike for HashMap<IStr, V, S> {
@@ -206,6 +214,10 @@
handler(name);
}
}
+
+ fn is_empty(&self) -> bool {
+ self.is_empty()
+ }
}
impl<V, S> OptionalContext for HashMap<IStr, V, S> where V: ArgLike + OptionalContext {}
@@ -235,6 +247,10 @@
fn named_names(&self, handler: &mut dyn FnMut(&IStr)) {
self.0.named_names(handler);
}
+
+ fn is_empty(&self) -> bool {
+ self.0.is_empty()
+ }
}
macro_rules! impl_args_like {
@@ -267,43 +283,13 @@
Ok(())
}
fn named_names(&self, _handler: &mut dyn FnMut(&IStr)) {}
- }
- impl<$($gen: ArgLike,)*> OptionalContext for ($($gen,)*) where $($gen: OptionalContext),* {}
- impl<$($gen: ArgLike,)*> ArgsLike for ($((IStr, $gen),)*) {
- fn unnamed_len(&self) -> usize {
- 0
- }
- fn unnamed_iter(
- &self,
- _ctx: Context,
- _tailstrict: bool,
- _handler: &mut dyn FnMut(usize, Thunk<Val>) -> Result<()>,
- ) -> Result<()> {
- Ok(())
- }
- #[allow(non_snake_case)]
- fn named_iter(
- &self,
- ctx: Context,
- tailstrict: bool,
- handler: &mut dyn FnMut(&IStr, Thunk<Val>) -> Result<()>,
- ) -> Result<()> {
- let ($($gen,)*) = self;
- $(
- handler(&$gen.0, $gen.1.evaluate_arg(ctx.clone(), tailstrict)?)?;
- )*
- Ok(())
- }
- #[allow(non_snake_case)]
- fn named_names(&self, handler: &mut dyn FnMut(&IStr)) {
- let ($($gen,)*) = self;
- $(
- handler(&$gen.0);
- )*
+ fn is_empty(&self) -> bool {
+ // impl_args_like only implements non-empty tuples.
+ false
}
}
- impl<$($gen: ArgLike,)*> OptionalContext for ($((IStr, $gen),)*) where $($gen: OptionalContext),* {}
+ impl<$($gen: ArgLike,)*> OptionalContext for ($($gen,)*) where $($gen: OptionalContext),* {}
};
($count:expr; $($cur:ident)* @ $c:ident $($rest:ident)*) => {
impl_args_like!($count; $($cur)*);
@@ -342,5 +328,8 @@
}
fn named_names(&self, _handler: &mut dyn FnMut(&IStr)) {}
+ fn is_empty(&self) -> bool {
+ true
+ }
}
impl OptionalContext for () {}
crates/jrsonnet-evaluator/src/function/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/function/mod.rs
+++ b/crates/jrsonnet-evaluator/src/function/mod.rs
@@ -12,7 +12,10 @@
native::NativeDesc,
parse::{parse_default_function_call, parse_function_call},
};
-use crate::{evaluate, evaluate_trivial, gc::TraceBox, tb, Context, ContextBuilder, Result, Val};
+use crate::{
+ bail, error::ErrorKind::*, evaluate, evaluate_trivial, gc::TraceBox, tb, Context,
+ ContextBuilder, Result, Thunk, Val,
+};
pub mod arglike;
pub mod builtin;
@@ -94,6 +97,8 @@
Id,
/// Plain function implemented in jsonnet.
Normal(Cc<FuncDesc>),
+ /// Function without arguments works just as a fancy thunk value.
+ Thunk(Thunk<Val>),
/// Standard library function.
StaticBuiltin(#[trace(skip)] &'static dyn StaticBuiltin),
/// User-provided function.
@@ -104,6 +109,7 @@
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Id => f.debug_tuple("Id").finish(),
+ Self::Thunk(arg0) => f.debug_tuple("Thunk").field(arg0).finish(),
Self::Normal(arg0) => f.debug_tuple("Normal").field(arg0).finish(),
Self::StaticBuiltin(arg0) => {
f.debug_tuple("StaticBuiltin").field(&arg0.name()).finish()
@@ -146,6 +152,7 @@
)
})
.collect(),
+ Self::Thunk(_) => vec![],
}
}
/// Amount of non-default required arguments
@@ -155,6 +162,7 @@
Self::Normal(n) => n.params.iter().filter(|p| p.1.is_none()).count(),
Self::StaticBuiltin(i) => i.params().iter().filter(|p| !p.has_default()).count(),
Self::Builtin(i) => i.params().iter().filter(|p| !p.has_default()).count(),
+ Self::Thunk(_) => 0,
}
}
/// Function name, as defined in code.
@@ -164,6 +172,7 @@
Self::Normal(normal) => normal.name.clone(),
Self::StaticBuiltin(builtin) => builtin.name().into(),
Self::Builtin(builtin) => builtin.name().into(),
+ Self::Thunk(_) => "thunk".into(),
}
}
/// Call function using arguments evaluated in specified `call_ctx` [`Context`].
@@ -182,6 +191,12 @@
let body_ctx = func.call_body_context(call_ctx, args, tailstrict)?;
evaluate(body_ctx, &func.body)
}
+ Self::Thunk(thunk) => {
+ if args.is_empty() {
+ bail!(TooManyArgsFunctionHas(0, vec![],))
+ }
+ thunk.evaluate()
+ }
Self::StaticBuiltin(b) => b.call(call_ctx, loc, args),
Self::Builtin(b) => b.call(call_ctx, loc, args),
}
crates/jrsonnet-evaluator/src/stdlib/format.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/stdlib/format.rs
+++ b/crates/jrsonnet-evaluator/src/stdlib/format.rs
@@ -308,22 +308,21 @@
prefix: &str,
caps: bool,
) {
- let radix = radix as f64;
- let iv = iv.floor();
+ let iv = iv.floor() as i64;
// Digit char indexes in reverse order, i.e
// for radix = 16 and n = 12f: [15, 2, 1]
- let digits = if iv == 0.0 {
+ let digits = if iv == 0 {
vec![0u8]
} else {
let mut v = iv.abs();
let mut nums = Vec::with_capacity(1);
- while v != 0.0 {
+ while v != 0 {
nums.push((v % radix) as u8);
- v = (v / radix).floor();
+ v /= radix;
}
nums
};
- let neg = iv < 0.0;
+ let neg = iv < 0;
#[allow(clippy::bool_to_int_with_if)]
let zp = padding.saturating_sub(if neg || blank || sign { 1 } else { 0 });
let zp2 = zp
crates/jrsonnet-rowan-parser/src/ast.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/ast.rs
+++ b/crates/jrsonnet-rowan-parser/src/ast.rs
@@ -16,12 +16,14 @@
Self: Sized;
fn syntax(&self) -> &SyntaxNode;
+ #[must_use]
fn clone_for_update(&self) -> Self
where
Self: Sized,
{
Self::cast(self.syntax().clone_for_update()).unwrap()
}
+ #[must_use]
fn clone_subtree(&self) -> Self
where
Self: Sized,
@@ -70,6 +72,8 @@
}
pub mod support {
+ use rowan::NodeOrToken;
+
use super::{AstChildren, AstNode, AstToken, SyntaxKind, SyntaxNode, SyntaxToken};
pub fn child<N: AstNode>(parent: &SyntaxNode) -> Option<N> {
@@ -89,7 +93,7 @@
pub fn token(parent: &SyntaxNode, kind: SyntaxKind) -> Option<SyntaxToken> {
parent
.children_with_tokens()
- .filter_map(|it| it.into_token())
+ .filter_map(NodeOrToken::into_token)
.find(|it| it.kind() == kind)
}
}
crates/jrsonnet-rowan-parser/src/event.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/event.rs
+++ b/crates/jrsonnet-rowan-parser/src/event.rs
@@ -26,7 +26,7 @@
// VirtualToken { kind: SyntaxKind },
/// Position of finished node
Finish {
- /// Same as forward_parent of Start, but for wrapping
+ /// Same as `forward_parent` of Start, but for wrapping
wrapper: Option<NonZeroUsize>,
error: Option<Box<SyntaxError>>,
},
@@ -57,13 +57,14 @@
if self.offset == 0 {
return 0.into();
};
- if let Some(lex) = self.lexemes.get(self.offset) {
- lex.range.start()
- } else if let Some(lex) = self.lexemes.get(self.offset - 1) {
- lex.range.end()
- } else {
- panic!("hard oob")
- }
+ self.lexemes.get(self.offset).map_or_else(
+ || {
+ self.lexemes
+ .get(self.offset - 1)
+ .map_or_else(|| panic!("hard oob"), |lex| lex.range.end())
+ },
+ |lex| lex.range.start(),
+ )
}
pub(super) fn finish(mut self) -> Parse {
@@ -139,7 +140,7 @@
self.errors.push(LocatedSyntaxError {
error: *error,
range: TextRange::new(range.0, range.1),
- })
+ });
}
self.builder.finish_node();
depth -= 1;
@@ -158,7 +159,7 @@
self.errors.push(LocatedSyntaxError {
error: *error,
range: TextRange::new(range.0, range.1),
- })
+ });
}
if depth == 1 {
crates/jrsonnet-stdlib/src/manifest/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/manifest/mod.rs
+++ b/crates/jrsonnet-stdlib/src/manifest/mod.rs
@@ -98,6 +98,7 @@
}
#[builtin]
+#[allow(clippy::fn_params_excessive_bools)]
pub fn builtin_manifest_yaml_stream(
value: Val,
#[default(false)] indent_array_in_object: bool,
crates/jrsonnet-stdlib/src/manifest/yaml.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/manifest/yaml.rs
+++ b/crates/jrsonnet-stdlib/src/manifest/yaml.rs
@@ -76,7 +76,7 @@
string.is_empty()
|| need_quotes_spaces(string)
- || string.starts_with(|c| matches!(c, '&' | '*' | '?' | '|' | '-' | '<' | '>' | '=' | '!' | '%' | '@'))
+ || string.starts_with(['&' , '*' , '?' , '|' , '-' , '<' , '>' , '=' , '!' , '%' , '@'])
|| string.contains(|c| matches!(c, ':' | '{' | '}' | '[' | ']' | ',' | '#' | '`' | '\"' | '\'' | '\\' | '\0'..='\x06' | '\t' | '\n' | '\r' | '\x0e'..='\x1a' | '\x1c'..='\x1f'))
|| [
// http://yaml.org/type/bool.html
crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/strings.rs
+++ b/crates/jrsonnet-stdlib/src/strings.rs
@@ -267,6 +267,7 @@
}
#[cfg(test)]
+#[allow(clippy::float_cmp)]
mod tests {
use super::*;
@@ -274,8 +275,8 @@
fn parse_nat_base_8() {
assert_eq!(parse_nat::<8>("0").unwrap(), 0.);
assert_eq!(parse_nat::<8>("5").unwrap(), 5.);
- assert_eq!(parse_nat::<8>("32").unwrap(), 0o32 as f64);
- assert_eq!(parse_nat::<8>("761").unwrap(), 0o761 as f64);
+ assert_eq!(parse_nat::<8>("32").unwrap(), f64::from(0o32));
+ assert_eq!(parse_nat::<8>("761").unwrap(), f64::from(0o761));
}
#[test]
@@ -290,7 +291,7 @@
fn parse_nat_base_16() {
assert_eq!(parse_nat::<16>("0").unwrap(), 0.);
assert_eq!(parse_nat::<16>("A").unwrap(), 10.);
- assert_eq!(parse_nat::<16>("a9").unwrap(), 0xA9 as f64);
- assert_eq!(parse_nat::<16>("BbC").unwrap(), 0xBBC as f64);
+ assert_eq!(parse_nat::<16>("a9").unwrap(), f64::from(0xA9));
+ assert_eq!(parse_nat::<16>("BbC").unwrap(), f64::from(0xBBC));
}
}
crates/jrsonnet-types/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-types/src/lib.rs
+++ b/crates/jrsonnet-types/src/lib.rs
@@ -4,84 +4,6 @@
use jrsonnet_gcmodule::Trace;
-#[macro_export]
-macro_rules! ty {
- ((Array<number>)) => {{
- $crate::ComplexValType::ArrayRef(&$crate::ComplexValType::Simple($crate::ValType::Num))
- }};
- ((Array<ubyte>)) => {{
- $crate::ComplexValType::ArrayRef(&$crate::ComplexValType::BoundedNumber(Some(0.0), Some(255.0)))
- }};
- (array) => {
- $crate::ComplexValType::Simple($crate::ValType::Arr)
- };
- (boolean) => {
- $crate::ComplexValType::Simple($crate::ValType::Bool)
- };
- (null) => {
- $crate::ComplexValType::Simple($crate::ValType::Null)
- };
- (string) => {
- $crate::ComplexValType::Simple($crate::ValType::Str)
- };
- (char) => {
- $crate::ComplexValType::Char
- };
- (number) => {
- $crate::ComplexValType::Simple($crate::ValType::Num)
- };
- (BoundedNumber<($min:expr), ($max:expr)>) => {{
- $crate::ComplexValType::BoundedNumber($min, $max)
- }};
- (object) => {
- $crate::ComplexValType::Simple($crate::ValType::Obj)
- };
- (any) => {
- $crate::ComplexValType::Any
- };
- (function) => {
- $crate::ComplexValType::Simple($crate::ValType::Func)
- };
- (($($a:tt) |+)) => {{
- static CONTENTS: &'static [&'static $crate::ComplexValType] = &[
- $(&ty!($a)),+
- ];
- $crate::ComplexValType::UnionRef(CONTENTS)
- }};
- (($($a:tt) &+)) => {{
- static CONTENTS: &'static [&'static $crate::ComplexValType] = &[
- $(&ty!($a)),+
- ];
- $crate::ComplexValType::SumRef(CONTENTS)
- }};
-}
-
-#[test]
-fn test() {
- assert_eq!(
- ty!((Array<number>)),
- ComplexValType::ArrayRef(&ComplexValType::Simple(ValType::Num))
- );
- assert_eq!(ty!(array), ComplexValType::Simple(ValType::Arr));
- assert_eq!(ty!(any), ComplexValType::Any);
- assert_eq!(
- ty!((string | number)),
- ComplexValType::UnionRef(&[
- &ComplexValType::Simple(ValType::Str),
- &ComplexValType::Simple(ValType::Num)
- ])
- );
- assert_eq!(
- format!("{}", ty!(((string & number) | (object & null)))),
- "string & number | object & null"
- );
- assert_eq!(format!("{}", ty!((string | array))), "string | array");
- assert_eq!(
- format!("{}", ty!(((string & number) | array))),
- "string & number | array"
- );
-}
-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Trace)]
pub enum ValType {
Bool,
@@ -213,98 +135,5 @@
Self::Lazy(lazy) => write!(f, "Lazy<{lazy}>")?,
};
Ok(())
- }
-}
-
-peg::parser! {
-pub grammar parser() for str {
- rule number() -> f64
- = n:$(['0'..='9']+) { n.parse().unwrap() }
-
- rule any_ty() -> ComplexValType = "any" { ComplexValType::Any }
- rule char_ty() -> ComplexValType = "character" { ComplexValType::Char }
- rule bool_ty() -> ComplexValType = "boolean" { ComplexValType::Simple(ValType::Bool) }
- rule null_ty() -> ComplexValType = "null" { ComplexValType::Simple(ValType::Null) }
- rule str_ty() -> ComplexValType = "string" { ComplexValType::Simple(ValType::Str) }
- rule num_ty() -> ComplexValType = "number" { ComplexValType::Simple(ValType::Num) }
- rule simple_array_ty() -> ComplexValType = "array" { ComplexValType::Simple(ValType::Arr) }
- rule simple_object_ty() -> ComplexValType = "object" { ComplexValType::Simple(ValType::Obj) }
- rule simple_function_ty() -> ComplexValType = "function" { ComplexValType::Simple(ValType::Func) }
-
- rule array_ty() -> ComplexValType
- = "Array<" t:ty() ">" { ComplexValType::Array(Box::new(t)) }
-
- rule bounded_number_ty() -> ComplexValType
- = "BoundedNumber<" a:number() ", " b:number() ">" { ComplexValType::BoundedNumber(Some(a), Some(b)) }
-
- rule ty_basic() -> ComplexValType
- = any_ty()
- / char_ty()
- / bool_ty()
- / null_ty()
- / str_ty()
- / num_ty()
- / simple_array_ty()
- / simple_object_ty()
- / simple_function_ty()
- / array_ty()
- / bounded_number_ty()
-
- pub rule ty() -> ComplexValType
- = precedence! {
- a:(@) " | " b:@ {
- match a {
- ComplexValType::Union(mut a) => {
- a.push(b);
- ComplexValType::Union(a)
- }
- _ => ComplexValType::Union(vec![a, b]),
- }
- }
- --
- a:(@) " & " b:@ {
- match a {
- ComplexValType::Sum(mut a) => {
- a.push(b);
- ComplexValType::Sum(a)
- }
- _ => ComplexValType::Sum(vec![a, b]),
- }
- }
- --
- "(" t:ty() ")" { t }
- t:ty_basic() { t }
- }
-}
-}
-
-#[cfg(test)]
-pub mod tests {
- use super::parser;
-
- #[test]
- fn precedence() {
- assert_eq!(
- parser::ty("(any & any) | (any | any) & any")
- .unwrap()
- .to_string(),
- "any & any | (any | any) & any"
- );
- }
-
- #[test]
- fn array() {
- assert_eq!(parser::ty("Array<any>").unwrap().to_string(), "array");
- assert_eq!(
- parser::ty("Array<number>").unwrap().to_string(),
- "Array<number>"
- );
- }
- #[test]
- fn bounded_number() {
- assert_eq!(
- parser::ty("BoundedNumber<1, 2>").unwrap().to_string(),
- "BoundedNumber<1, 2>"
- );
}
}
flake.lockdiffbeforeafterboth7 ]7 ]8 },8 },9 "locked": {9 "locked": {10 "lastModified": 1715274763,10 "lastModified": 1724377159,11 "narHash": "sha256-3Iv1PGHJn9sV3HO4FlOVaaztOxa9uGLfOmUWrH7v7+A=",11 "narHash": "sha256-ixjje1JO8ucKT41hs6n2NCde1Vc0+Zc2p2gUbJpCsMw=",12 "owner": "ipetkov",12 "owner": "ipetkov",13 "repo": "crane",13 "repo": "crane",14 "rev": "27025ab71bdca30e7ed0a16c88fd74c5970fc7f5",14 "rev": "3e47b7a86c19142bd3675da49d6acef488b4dac1",15 "type": "github"15 "type": "github"16 },16 },17 "original": {17 "original": {27 ]27 ]28 },28 },29 "locked": {29 "locked": {30 "lastModified": 1717285511,30 "lastModified": 1722555600,31 "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",31 "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",32 "owner": "hercules-ci",32 "owner": "hercules-ci",33 "repo": "flake-parts",33 "repo": "flake-parts",34 "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",34 "rev": "8471fe90ad337a8074e957b69ca4d0089218391d",35 "type": "github"35 "type": "github"36 },36 },37 "original": {37 "original": {40 "type": "github"40 "type": "github"41 }41 }42 },42 },43 "flake-utils": {44 "inputs": {45 "systems": "systems"46 },47 "locked": {48 "lastModified": 1710146030,49 "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",50 "owner": "numtide",51 "repo": "flake-utils",52 "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",53 "type": "github"54 },55 "original": {56 "owner": "numtide",57 "repo": "flake-utils",58 "type": "github"59 }60 },61 "nixpkgs": {43 "nixpkgs": {62 "locked": {44 "locked": {63 "lastModified": 1715551360,45 "lastModified": 1724519568,64 "narHash": "sha256-fGYt2XnTYUS4Q0eH8tVu3ki1+m9YTgZ+NjlfkMKzko0=",46 "narHash": "sha256-CmfrenY4cEi/mIslKy8XOGdqxUUVgT6/qMzNcAN/7z8=",65 "owner": "nixos",47 "owner": "nixos",66 "repo": "nixpkgs",48 "repo": "nixpkgs",67 "rev": "836306cd7bbb9e0f89c557b2ae14df09e573ee89",49 "rev": "eb0e6df0cdd2641ec0651cd9802ff4cff3b3e915",68 "type": "github"50 "type": "github"69 },51 },70 "original": {52 "original": {84 },66 },85 "rust-overlay": {67 "rust-overlay": {86 "inputs": {68 "inputs": {87 "flake-utils": "flake-utils",88 "nixpkgs": [69 "nixpkgs": [89 "nixpkgs"70 "nixpkgs"90 ]71 ]91 },72 },92 "locked": {73 "locked": {93 "lastModified": 1715480255,74 "lastModified": 1724466314,94 "narHash": "sha256-gEZl8nYidQwqJhOigJ91JDjoBFoPEWVsd82AKnaE7Go=",75 "narHash": "sha256-ltKuK6shQ64uej1mYNtBsDYxttUNFiv9AcHqk0+0NQM=",95 "owner": "oxalica",76 "owner": "oxalica",96 "repo": "rust-overlay",77 "repo": "rust-overlay",97 "rev": "d690205a4f01ec0930303c4204e5063958e51255",78 "rev": "2b5b3edd96ef336b00622dcabc13788fdef9e3ca",98 "type": "github"79 "type": "github"99 },80 },100 "original": {81 "original": {125 "repo": "shelly",106 "repo": "shelly",126 "type": "github"107 "type": "github"127 }108 }128 },109 }129 "systems": {130 "locked": {131 "lastModified": 1681028828,132 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",133 "owner": "nix-systems",134 "repo": "default",135 "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",136 "type": "github"137 },138 "original": {139 "owner": "nix-systems",140 "repo": "default",141 "type": "github"142 }143 }144 },110 },145 "root": "root",111 "root": "root",146 "version": 7112 "version": 7rust-toolchain.tomldiffbeforeafterboth--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,3 +1,3 @@
[toolchain]
-channel = "nightly-2024-05-10"
+channel = "nightly-2024-08-20"
components = ["rustfmt", "clippy", "rust-analyzer", "rust-src"]
tests/tests/builtin.rsdiffbeforeafterboth--- a/tests/tests/builtin.rs
+++ b/tests/tests/builtin.rs
@@ -11,8 +11,8 @@
use jrsonnet_stdlib::ContextInitializer as StdContextInitializer;
#[builtin]
-fn a() -> Result<u32> {
- Ok(1)
+fn a() -> u32 {
+ 1
}
#[test]
@@ -29,8 +29,8 @@
}
#[builtin]
-fn native_add(a: u32, b: u32) -> Result<u32> {
- Ok(a + b)
+fn native_add(a: u32, b: u32) -> u32 {
+ a + b
}
#[derive(Trace)]
struct NativeAddContextInitializer;
@@ -72,13 +72,13 @@
#[builtin(fields(
a: u32
))]
-fn curried_add(this: &curried_add, b: u32) -> Result<u32> {
- Ok(this.a + b)
+fn curried_add(this: &curried_add, b: u32) -> u32 {
+ this.a + b
}
#[builtin]
-fn curry_add(a: u32) -> Result<FuncVal> {
- Ok(FuncVal::builtin(curried_add { a }))
+fn curry_add(a: u32) -> FuncVal {
+ FuncVal::builtin(curried_add { a })
}
#[derive(Trace)]
struct CurryAddContextInitializer;
tests/tests/common.rsdiffbeforeafterboth--- a/tests/tests/common.rs
+++ b/tests/tests/common.rs
@@ -73,6 +73,7 @@
.iter()
.map(|p| p.name().as_str().unwrap_or("<unnamed>").to_string())
.collect(),
+ FuncVal::Thunk(_) => vec![],
}
}
tests/tests/golden.rsdiffbeforeafterboth--- a/tests/tests/golden.rs
+++ b/tests/tests/golden.rs
@@ -32,7 +32,7 @@
Err(e) => return trace_format.format(&e).unwrap(),
};
match v.manifest(JsonFormat::default()) {
- Ok(v) => v.to_string(),
+ Ok(v) => v,
Err(e) => trace_format.format(&e).unwrap(),
}
}
@@ -57,45 +57,46 @@
if !golden_path.exists() {
fs::write(golden_path, &result)?;
- } else {
- let golden = fs::read_to_string(golden_path)?;
+ continue;
+ }
- match (serde_json::from_str(&result), serde_json::from_str(&golden)) {
- (Err(_), Ok(_)) => assert_eq!(
- result,
- golden,
- "unexpected error for golden {}",
- entry.path().display()
- ),
- (Ok(_), Err(_)) => assert_eq!(
- result,
- golden,
- "expected error for golden {}",
- entry.path().display()
- ),
- (Ok(result), Ok(golden)) => {
- // Show diff relative to golden`.
- let diff = JsonDiff::diff_string(&golden, &result, false);
- if let Some(diff) = diff {
- panic!(
- "Result \n{result:#}\n\
- and golden \n{golden:#}\n\
- did not match structurally:\n{diff:#}\n\
- for golden {}",
- entry.path().display()
- );
- }
- }
- (Err(_), Err(_)) => {}
- };
+ let golden = fs::read_to_string(golden_path)?;
- assert_eq!(
+ match (serde_json::from_str(&result), serde_json::from_str(&golden)) {
+ (Err(_), Ok(_)) => assert_eq!(
result,
golden,
- "golden didn't match for {}",
+ "unexpected error for golden {}",
+ entry.path().display()
+ ),
+ (Ok(_), Err(_)) => assert_eq!(
+ result,
+ golden,
+ "expected error for golden {}",
entry.path().display()
- )
- }
+ ),
+ (Ok(result), Ok(golden)) => {
+ // Show diff relative to golden`.
+ let diff = JsonDiff::diff_string(&golden, &result, false);
+ if let Some(diff) = diff {
+ panic!(
+ "Result \n{result:#}\n\
+ and golden \n{golden:#}\n\
+ did not match structurally:\n{diff:#}\n\
+ for golden {}",
+ entry.path().display()
+ );
+ }
+ }
+ (Err(_), Err(_)) => {}
+ };
+
+ assert_eq!(
+ result,
+ golden,
+ "golden didn't match for {}",
+ entry.path().display()
+ );
}
Ok(())