difftreelog
perf use fxhash
in: master
8 files changed
Cargo.lockdiffbeforeafterboth57 packageslockfile v1
Might be heavy and slow!
annotate-snippets
0.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c96c3d1062ea7101741480185a6a1275eab01cbe8b20e378d1311bc056d2e08depends onused byatty
0.2.14crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8depends onused byautocfg
1.0.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9dused bybase64
0.12.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ffused bybincode
1.3.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896ddepends onused bybitflags
1.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693used bybyteorder
1.3.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472deused bycc
1.0.55crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1be3409f94d7bdceeb5f5fac551039d9b3f00e25da7a74fc4d33400a0d96368used byclap
3.0.0-beta.1github.com/clap-rs/clap↘ 11↖ 2sourcegit+https://github.com/clap-rs/clap?rev=6a56a82629d1a990efb37dae9c75a76e943f22a0#6a56a82629d1a990efb37dae9c75a76e943f22a0depends onclap_derive
3.0.0-beta.1github.com/clap-rs/clap↘ 5↖ 1sourcegit+https://github.com/clap-rs/clap?rev=6a56a82629d1a990efb37dae9c75a76e943f22a0#6a56a82629d1a990efb37dae9c75a76e943f22a0used byclosure
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd6173fd61b610d15a7566dd7b7620775627441c4ab9dac8906e17cb93a24b782used byhashbrown
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fbdepends onused byheck
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205depends onused byhermit-abi
0.1.14crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909depends onused byindexmap
1.5.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9depends onitoa
0.4.6crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6used byjrsonnet
0.3.0workspace↘ 5↖ 0jrsonnet-cli
0.1.0workspace↘ 3↖ 1jrsonnet-evaluator
0.3.0workspace↘ 12↖ 3jrsonnet-parser
0.3.0workspace↘ 6↖ 4jrsonnet-stdlib
0.3.0workspace↘ 0↖ 2jsonnet
0.1.0workspace↘ 2↖ 0lazy_static
1.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646used bylibc
0.2.71crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49md5
0.7.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771used bymimalloc-sys
0.1.6crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4aa3cefb626f6ae3d0b2f71c5378c89d2b1d4d7bc246b0ca9a7ee61a4daad291depends onused bymimallocator
0.1.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d44fe4ebf6b538fcf39d9975c2b90bb3232d1ba8e8bffeacd004f27b20c577adepends onused byos_str_bytes
2.3.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06de47b848347d8c4c94219ad8ecd35eb90231704b067e67e6ae2e36ee023510used bypathdiff
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34used bypeg
0.6.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9f76678828272f177ac33b7e2ac2e3e73cc6c1cd1e3e387928aa69562fa51367depends onused bypeg-macros
0.6.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum636d60acf97633e48d266d7415a9355d4389cea327a193f87df395d88cd2b14dused bypeg-runtime
0.6.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9555b1514d2d99d78150d3c799d4c357a3e2c2a8062cd108e93a06d9057629c5used byproc-macro-error
1.0.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880used byproc-macro-error-attr
1.0.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50used byproc-macro2
1.0.18crates.io↘ 1↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbeae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fadepends onquote
1.0.7crates.io↘ 1↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37depends onryu
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86eused byserde
1.0.115crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5depends onserde_derive
1.0.115crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48depends onused byserde_json
1.0.57crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675cdepends onused bystrsim
0.10.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623used bystructdump
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e16ec33a0342fdb67d13913b4ffae6527ebccfa04b5d7da174bdc7a31db29b8structdump-derive
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06c337fdc077e02ccbfcc62af0090564a4af342975c3b7be09705efab90c1888depends onused bysyn
1.0.33crates.io↘ 3↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cdsyn-mid
0.5.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338adepends onused bytermcolor
1.1.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75fdepends onused bytextwrap
0.12.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789depends onused byunescape
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6eused byunicode-segmentation
1.6.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0used byunicode-width
0.1.7crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcaaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479unicode-xid
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097cused byvec_map
0.8.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191used byversion_check
0.9.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aedwinapi
0.3.9crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419used bywinapi-i686-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6used bywinapi-util
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178depends onused bywinapi-x86_64-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183fused by
58 packageslockfile v1
Might be heavy and slow!
annotate-snippets
0.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c96c3d1062ea7101741480185a6a1275eab01cbe8b20e378d1311bc056d2e08depends onused byatty
0.2.14crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8depends onused byautocfg
1.0.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9dused bybase64
0.12.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ffused bybincode
1.3.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896ddepends onused bybitflags
1.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693used bybyteorder
1.3.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472deused bycc
1.0.55crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1be3409f94d7bdceeb5f5fac551039d9b3f00e25da7a74fc4d33400a0d96368used byclap
3.0.0-beta.1github.com/clap-rs/clap↘ 11↖ 2sourcegit+https://github.com/clap-rs/clap?rev=6a56a82629d1a990efb37dae9c75a76e943f22a0#6a56a82629d1a990efb37dae9c75a76e943f22a0depends onclap_derive
3.0.0-beta.1github.com/clap-rs/clap↘ 5↖ 1sourcegit+https://github.com/clap-rs/clap?rev=6a56a82629d1a990efb37dae9c75a76e943f22a0#6a56a82629d1a990efb37dae9c75a76e943f22a0used byclosure
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd6173fd61b610d15a7566dd7b7620775627441c4ab9dac8906e17cb93a24b782used byhashbrown
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fbdepends onused byheck
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205depends onused byhermit-abi
0.1.14crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909depends onused byindexmap
1.5.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9depends onitoa
0.4.6crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6used byjrsonnet
0.3.0workspace↘ 5↖ 0jrsonnet-cli
0.1.0workspace↘ 3↖ 1jrsonnet-parser
0.3.0workspace↘ 6↖ 4jrsonnet-stdlib
0.3.0workspace↘ 0↖ 2jsonnet
0.1.0workspace↘ 2↖ 0lazy_static
1.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646used bylibc
0.2.71crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49md5
0.7.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771used bymimalloc-sys
0.1.6crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4aa3cefb626f6ae3d0b2f71c5378c89d2b1d4d7bc246b0ca9a7ee61a4daad291depends onused bymimallocator
0.1.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d44fe4ebf6b538fcf39d9975c2b90bb3232d1ba8e8bffeacd004f27b20c577adepends onused byos_str_bytes
2.3.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06de47b848347d8c4c94219ad8ecd35eb90231704b067e67e6ae2e36ee023510used bypathdiff
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34used bypeg
0.6.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9f76678828272f177ac33b7e2ac2e3e73cc6c1cd1e3e387928aa69562fa51367depends onused bypeg-macros
0.6.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum636d60acf97633e48d266d7415a9355d4389cea327a193f87df395d88cd2b14dused bypeg-runtime
0.6.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9555b1514d2d99d78150d3c799d4c357a3e2c2a8062cd108e93a06d9057629c5used byproc-macro-error
1.0.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880used byproc-macro-error-attr
1.0.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50used byproc-macro2
1.0.18crates.io↘ 1↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbeae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fadepends onquote
1.0.7crates.io↘ 1↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37depends onrustc-hash
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2used byryu
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86eused byserde
1.0.115crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5depends onserde_derive
1.0.115crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48depends onused byserde_json
1.0.57crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675cdepends onused bystrsim
0.10.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623used bystructdump
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e16ec33a0342fdb67d13913b4ffae6527ebccfa04b5d7da174bdc7a31db29b8structdump-derive
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06c337fdc077e02ccbfcc62af0090564a4af342975c3b7be09705efab90c1888depends onused bysyn
1.0.33crates.io↘ 3↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cdsyn-mid
0.5.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338adepends onused bytermcolor
1.1.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75fdepends onused bytextwrap
0.12.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789depends onused byunescape
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6eused byunicode-segmentation
1.6.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0used byunicode-width
0.1.7crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcaaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479unicode-xid
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097cused byvec_map
0.8.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191used byversion_check
0.9.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aedwinapi
0.3.9crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419used bywinapi-i686-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6used bywinapi-util
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178depends onused bywinapi-x86_64-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183fused by
crates/jrsonnet-evaluator/Cargo.tomldiffbeforeafterboth--- a/crates/jrsonnet-evaluator/Cargo.toml
+++ b/crates/jrsonnet-evaluator/Cargo.toml
@@ -9,7 +9,7 @@
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
-default = ["serialized-stdlib", "faster", "explaining-traces"]
+default = ["serialized-stdlib", "faster", "explaining-traces", "serde-json"]
# Serializes standard library AST instead of parsing them every run
serialized-stdlib = ["serde", "bincode", "jrsonnet-parser/deserialize"]
# Allow to convert Val into serde_json::Value and backwards
@@ -35,6 +35,7 @@
md5 = "0.7.0"
base64 = "0.12.3"
+rustc-hash = "1.1.0"
# Serialized stdlib
[dependencies.serde]
crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/builtin/mod.rs
+++ b/crates/jrsonnet-evaluator/src/builtin/mod.rs
@@ -158,7 +158,7 @@
("std", "native") => parse_args!(context, "std.native", args, 1, [
0, x: [Val::Str]!!Val::Str, vec![ValType::Str];
], {
- Ok(with_state(|s| s.settings().ext_natives.get(&x).cloned()).map(|v| Val::Func(FuncVal::NativeExt(x.clone(), v))).ok_or_else(
+ Ok(with_state(|s| s.settings().ext_natives.get(&x).cloned()).map(|v| Val::Func(Rc::new(FuncVal::NativeExt(x.clone(), v)))).ok_or_else(
|| UndefinedExternalFunction(x),
)?)
})?,
@@ -212,7 +212,7 @@
if arr.len() <= 1 {
return Ok(Val::Arr(arr))
}
- Ok(Val::Arr(sort::sort(context, arr, keyF)?))
+ Ok(Val::Arr(sort::sort(context, arr, &keyF)?))
})?,
// faster
("std", "format") => parse_args!(context, "std.format", args, 2, [
crates/jrsonnet-evaluator/src/ctx.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/ctx.rs
+++ b/crates/jrsonnet-evaluator/src/ctx.rs
@@ -2,6 +2,8 @@
error::Error::*, future_wrapper, map::LayeredHashMap, rc_fn_helper, resolved_lazy_val,
LazyBinding, LazyVal, ObjValue, Result, Val,
};
+use rustc_hash::FxHashMap;
+use std::hash::BuildHasherDefault;
use std::{cell::RefCell, collections::HashMap, fmt::Debug, rc::Rc};
rc_fn_helper!(
@@ -71,14 +73,15 @@
}
pub fn with_var(self, name: Rc<str>, value: Val) -> Context {
- let mut new_bindings = HashMap::with_capacity(1);
+ let mut new_bindings =
+ FxHashMap::with_capacity_and_hasher(1, BuildHasherDefault::default());
new_bindings.insert(name, resolved_lazy_val!(value));
self.extend(new_bindings, None, None, None)
}
pub fn extend(
self,
- new_bindings: HashMap<Rc<str>, LazyVal>,
+ new_bindings: FxHashMap<Rc<str>, LazyVal>,
new_dollar: Option<ObjValue>,
new_this: Option<ObjValue>,
new_super_obj: Option<ObjValue>,
@@ -127,7 +130,8 @@
) -> Result<Context> {
let this = new_this.or_else(|| self.0.this.clone());
let super_obj = new_super_obj.or_else(|| self.0.super_obj.clone());
- let mut new = HashMap::with_capacity(new_bindings.len());
+ let mut new =
+ FxHashMap::with_capacity_and_hasher(new_bindings.len(), BuildHasherDefault::default());
for (k, v) in new_bindings.into_iter() {
new.insert(k, v.evaluate(this.clone(), super_obj.clone())?);
}
crates/jrsonnet-evaluator/src/evaluate.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/evaluate.rs
+++ b/crates/jrsonnet-evaluator/src/evaluate.rs
@@ -9,6 +9,7 @@
ForSpecData, IfSpecData, LiteralType, LocExpr, Member, ObjBody, ParamsDesc, UnaryOpType,
Visibility,
};
+use rustc_hash::FxHashMap;
use std::{collections::HashMap, rc::Rc};
pub fn evaluate_binding(b: &BindSpec, context_creator: ContextCreator) -> (Rc<str>, LazyBinding) {
@@ -45,7 +46,7 @@
}
pub fn evaluate_method(ctx: Context, name: Rc<str>, params: ParamsDesc, body: LocExpr) -> Val {
- Val::Func(FuncVal::Normal(Rc::new(FuncDesc {
+ Val::Func(Rc::new(FuncVal::Normal(FuncDesc {
name,
ctx,
params,
@@ -351,7 +352,7 @@
let key = evaluate(ctx.clone(), &obj.key)?;
let value = LazyBinding::Bindable(Rc::new(
closure!(clone ctx, clone obj.value, |this, _super_obj| {
- Ok(LazyVal::new_resolved(evaluate(ctx.clone().extend(HashMap::new(), None, this, None), &value)?))
+ Ok(LazyVal::new_resolved(evaluate(ctx.clone().extend(FxHashMap::default(), None, this, None), &value)?))
}),
));
@@ -468,7 +469,7 @@
} else if let Some(Val::Str(n)) =
v.get("__intristic_namespace__".into())?
{
- Ok(Val::Func(FuncVal::Intristic(n, s)))
+ Ok(Val::Func(Rc::new(FuncVal::Intristic(n, s))))
} else {
throw!(NoSuchField(s))
}
crates/jrsonnet-evaluator/src/function.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/function.rs
+++ b/crates/jrsonnet-evaluator/src/function.rs
@@ -1,7 +1,8 @@
use crate::{error::Error::*, evaluate, lazy_val, resolved_lazy_val, throw, Context, Result, Val};
use closure::closure;
use jrsonnet_parser::{ArgsDesc, ParamsDesc};
-use std::{collections::HashMap, rc::Rc};
+use rustc_hash::FxHashMap;
+use std::{collections::HashMap, hash::BuildHasherDefault, rc::Rc};
const NO_DEFAULT_CONTEXT: &str =
"no default context set for call with defined default parameter value";
@@ -20,7 +21,7 @@
args: &ArgsDesc,
tailstrict: bool,
) -> Result<Context> {
- let mut out = HashMap::with_capacity(params.len());
+ let mut out = HashMap::with_capacity_and_hasher(params.len(), BuildHasherDefault::default());
let mut positioned_args = vec![None; params.0.len()];
for (id, arg) in args.iter().enumerate() {
let idx = if let Some(name) = &arg.0 {
@@ -67,7 +68,7 @@
args: &HashMap<Rc<str>, Val>,
tailstrict: bool,
) -> Result<Context> {
- let mut out = HashMap::with_capacity(params.len());
+ let mut out = FxHashMap::with_capacity_and_hasher(params.len(), BuildHasherDefault::default());
let mut positioned_args = vec![None; params.0.len()];
for (name, val) in args.iter() {
let idx = params
@@ -115,7 +116,7 @@
params: &ParamsDesc,
args: &[Val],
) -> Result<Context> {
- let mut out = HashMap::with_capacity(params.len());
+ let mut out = FxHashMap::with_capacity_and_hasher(params.len(), BuildHasherDefault::default());
let mut positioned_args = vec![None; params.0.len()];
for (id, arg) in args.iter().enumerate() {
if id >= params.len() {
crates/jrsonnet-evaluator/src/map.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/map.rs
+++ b/crates/jrsonnet-evaluator/src/map.rs
@@ -1,16 +1,17 @@
-use std::{borrow::Borrow, collections::HashMap, hash::Hash, rc::Rc};
+use rustc_hash::FxHashMap;
+use std::{borrow::Borrow, hash::Hash, rc::Rc};
#[derive(Default, Debug)]
struct LayeredHashMapInternals<K: Hash, V> {
parent: Option<LayeredHashMap<K, V>>,
- current: HashMap<K, V>,
+ current: FxHashMap<K, V>,
}
#[derive(Debug)]
pub struct LayeredHashMap<K: Hash, V>(Rc<LayeredHashMapInternals<K, V>>);
impl<K: Hash + Eq, V> LayeredHashMap<K, V> {
- pub fn extend(self, new_layer: HashMap<K, V>) -> Self {
+ pub fn extend(self, new_layer: FxHashMap<K, V>) -> Self {
match Rc::try_unwrap(self.0) {
Ok(mut map) => {
map.current.extend(new_layer);
@@ -45,7 +46,7 @@
fn default() -> Self {
LayeredHashMap(Rc::new(LayeredHashMapInternals {
parent: None,
- current: HashMap::new(),
+ current: FxHashMap::default(),
}))
}
}
crates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/val.rs
+++ b/crates/jrsonnet-evaluator/src/val.rs
@@ -71,15 +71,16 @@
pub body: LocExpr,
}
-#[derive(Debug, Clone)]
+#[derive(Debug)]
pub enum FuncVal {
/// Plain function implemented in jsonnet
- Normal(Rc<FuncDesc>),
+ Normal(FuncDesc),
/// Standard library function
Intristic(Rc<str>, Rc<str>),
/// Library functions implemented in native
NativeExt(Rc<str>, Rc<NativeCallback>),
}
+
impl PartialEq for FuncVal {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
@@ -212,8 +213,9 @@
Lazy(LazyVal),
Arr(Rc<Vec<Val>>),
Obj(ObjValue),
- Func(FuncVal),
+ Func(Rc<FuncVal>),
}
+
macro_rules! matches_unwrap {
($e: expr, $p: pat, $r: expr) => {
match $e {