]> Repositorios git - scryer-prolog.git/commitdiff
prepare for publishing to crates.io (#1335)
authorMark Thom <[email protected]>
Tue, 15 Mar 2022 05:31:50 +0000 (23:31 -0600)
committerMark Thom <[email protected]>
Tue, 15 Mar 2022 06:07:42 +0000 (00:07 -0600)
15 files changed:
Cargo.lock
Cargo.toml
README.md
build/instructions_template.rs [moved from crates/instructions-template/src/lib.rs with 100% similarity]
build/main.rs [moved from build.rs with 98% similarity]
build/static_string_indexing.rs [moved from crates/static-string-indexing/src/lib.rs with 100% similarity]
crates/instructions-template/Cargo.lock [deleted file]
crates/instructions-template/Cargo.toml [deleted file]
crates/num-rug-adapter/Cargo.toml [deleted file]
crates/num-rug-adapter/src/lib.rs [deleted file]
crates/static-string-indexing/Cargo.toml [deleted file]
crates/to-syn-value/Cargo.toml [deleted file]
crates/to-syn-value/src/lib.rs [deleted file]
crates/to-syn-value_derive/Cargo.toml [deleted file]
crates/to-syn-value_derive/src/lib.rs [deleted file]

index dad5a5b45c962d71ead16ab6082188307defe856..f6a5430f67fd16c6b2ebdf8c0fe2d96d6c3ee364 100644 (file)
@@ -24,21 +24,24 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
+dependencies = [
+ "autocfg 1.1.0",
+]
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "az"
-version = "1.1.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6dff4a1892b54d70af377bf7a17064192e822865791d812957f21e3108c325"
+checksum = "f771a5d1f5503f7f4279a30f3643d3421ba149848b89ecaaec0ea2acf04a5ac4"
 
 [[package]]
 name = "base64"
@@ -63,9 +66,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 
 [[package]]
 name = "bitflags"
-version = "1.2.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "blake2"
@@ -113,9 +116,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.8.0"
+version = "3.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
+checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
 
 [[package]]
 name = "byte-tools"
@@ -131,9 +134,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
 [[package]]
 name = "cc"
-version = "1.0.72"
+version = "1.0.73"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
 
 [[package]]
 name = "cfg-if"
@@ -162,9 +165,9 @@ dependencies = [
 
 [[package]]
 name = "clipboard-win"
-version = "4.2.2"
+version = "4.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3db8340083d28acb43451166543b98c838299b7e0863621be53a338adceea0ed"
+checksum = "2f3e1238132dc01f081e1cbb9dace14e5ef4c3a51ee244bd982275fb514605db"
 dependencies = [
  "error-code",
  "str-buf",
@@ -182,9 +185,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -217,7 +220,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "mio",
- "parking_lot",
+ "parking_lot 0.10.2",
  "signal-hook",
  "winapi 0.3.9",
 ]
@@ -291,9 +294,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "ed25519"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc"
+checksum = "eed12bbf7b5312f8da1c2722bc06d8c6b12c2d86a7fb35a194c7f3e6fc2bbe39"
 dependencies = [
  "signature",
 ]
@@ -310,24 +313,54 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
 
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
 [[package]]
 name = "error-code"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5115567ac25674e0043e472be13d14e537f37ea8aa4bdc4aef0c89add1db1ff"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
 dependencies = [
  "libc",
  "str-buf",
 ]
 
+[[package]]
+name = "fastrand"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
+
 [[package]]
 name = "fd-lock"
-version = "3.0.1"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfc110fe50727d46a428eed832df40affe9bf74d077cac1bf3f2718e823f14c5"
+checksum = "02ecad9808e0596f8956d14f7fa868f996290bd01c8d7329d6e5bc2bb76adf8f"
 dependencies = [
  "cfg-if 1.0.0",
- "libc",
+ "rustix",
  "windows-sys",
 ]
 
@@ -370,9 +403,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
 
 [[package]]
 name = "futf"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b"
+checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
 dependencies = [
  "mac",
  "new_debug_unreachable",
@@ -398,9 +431,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.3"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
@@ -424,9 +457,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f"
 dependencies = [
  "proc-macro-hack",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
@@ -481,28 +514,29 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
  "hashbrown",
 ]
 
 [[package]]
-name = "instructions-template"
-version = "0.1.0"
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "indexmap",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "strum",
- "strum_macros",
- "syn 1.0.81",
- "to-syn-value",
- "to-syn-value_derive",
+ "cfg-if 1.0.0",
 ]
 
+[[package]]
+name = "io-lifetimes"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6"
+
 [[package]]
 name = "iovec"
 version = "0.1.4"
@@ -514,24 +548,24 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.10.1"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.8"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
 
 [[package]]
 name = "js-sys"
-version = "0.3.55"
+version = "0.3.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
+checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -583,9 +617,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.107"
+version = "0.2.120"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
+checksum = "ad5c14e80759d0939d013e6ca49930e59fc53dd8e5009132f76240c179380c09"
 
 [[package]]
 name = "libsodium-sys"
@@ -599,6 +633,12 @@ dependencies = [
  "walkdir",
 ]
 
+[[package]]
+name = "linux-raw-sys"
+version = "0.0.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7"
+
 [[package]]
 name = "lock_api"
 version = "0.3.4"
@@ -608,6 +648,15 @@ dependencies = [
  "scopeguard",
 ]
 
+[[package]]
+name = "lock_api"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
+dependencies = [
+ "scopeguard",
+]
+
 [[package]]
 name = "log"
 version = "0.4.14"
@@ -663,11 +712,11 @@ checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
 
 [[package]]
 name = "memoffset"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
 ]
 
 [[package]]
@@ -715,9 +764,9 @@ name = "modular-bitfield-impl"
 version = "0.11.2"
 source = "git+https://github.com/mthom/modular-bitfield#213535c684af277563678179d8496f11b84a283f"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
@@ -779,9 +828,9 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.22.2"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3bb9a13fa32bc5aeb64150cd3f32d6cf4c748f8f8a417cce5d2eb976a8370ba"
+checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
 dependencies = [
  "bitflags",
  "cc",
@@ -796,7 +845,7 @@ version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
  "num-integer",
  "num-traits",
 ]
@@ -807,7 +856,7 @@ version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
  "num-traits",
 ]
 
@@ -817,7 +866,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
  "num-bigint",
  "num-integer",
  "num-traits",
@@ -825,7 +874,8 @@ dependencies = [
 
 [[package]]
 name = "num-rug-adapter"
-version = "0.1.5"
+version = "0.1.6"
+source = "git+https://github.com/mthom/num-rug-adapter#58ec611ca8ac4d6ebf41e41f588f472e51a23e60"
 dependencies = [
  "libc",
  "num-bigint",
@@ -840,14 +890,14 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.8.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
 
 [[package]]
 name = "opaque-debug"
@@ -871,26 +921,26 @@ dependencies = [
 
 [[package]]
 name = "openssl-probe"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.0.2+3.0.0"
+version = "111.17.0+1.1.1m"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14a760a11390b1a5daf72074d4f6ff1a6e772534ae191f999f57e9ee8146d1fb"
+checksum = "05d6a336abd10814198f66e2a91ccd7336611f30334119ca8ce300536666fcf4"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.70"
+version = "0.9.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf"
+checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb"
 dependencies = [
- "autocfg 1.0.1",
+ "autocfg 1.1.0",
  "cc",
  "libc",
  "openssl-src",
@@ -900,9 +950,9 @@ dependencies = [
 
 [[package]]
 name = "ordered-float"
-version = "2.8.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97c9d06878b3a851e8026ef94bf7fef9ba93062cd412601da4d9cf369b1cc62d"
+checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
 dependencies = [
  "num-traits",
 ]
@@ -913,8 +963,19 @@ version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
 dependencies = [
- "lock_api",
- "parking_lot_core",
+ "lock_api 0.3.4",
+ "parking_lot_core 0.7.2",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api 0.4.6",
+ "parking_lot_core 0.8.5",
 ]
 
 [[package]]
@@ -931,6 +992,20 @@ dependencies = [
  "winapi 0.3.9",
 ]
 
+[[package]]
+name = "parking_lot_core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
+dependencies = [
+ "cfg-if 1.0.0",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.11",
+ "smallvec",
+ "winapi 0.3.9",
+]
+
 [[package]]
 name = "phf"
 version = "0.7.24"
@@ -978,7 +1053,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082"
 dependencies = [
  "phf_shared 0.9.0",
- "rand 0.8.4",
+ "rand 0.8.5",
 ]
 
 [[package]]
@@ -990,9 +1065,9 @@ dependencies = [
  "phf_generator 0.9.1",
  "phf_shared 0.9.0",
  "proc-macro-hack",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
@@ -1010,20 +1085,20 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9"
 dependencies = [
- "siphasher 0.3.7",
+ "siphasher 0.3.10",
 ]
 
 [[package]]
 name = "pkg-config"
-version = "0.3.22"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
+checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
 
 [[package]]
 name = "precomputed-hash"
@@ -1033,9 +1108,9 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
 [[package]]
 name = "predicates"
-version = "2.0.3"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c6ce811d0b2e103743eec01db1c50612221f173084ce2f7941053e94b6bb474"
+checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c"
 dependencies = [
  "difflib",
  "itertools",
@@ -1044,15 +1119,15 @@ dependencies = [
 
 [[package]]
 name = "predicates-core"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
+checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7"
+checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -1075,9 +1150,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.32"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
+checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
 dependencies = [
  "unicode-xid 0.2.2",
 ]
@@ -1093,11 +1168,11 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.10"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
+checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
 dependencies = [
- "proc-macro2 1.0.32",
+ "proc-macro2 1.0.36",
 ]
 
 [[package]]
@@ -1116,11 +1191,11 @@ version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
 dependencies = [
- "autocfg 0.1.7",
+ "autocfg 0.1.8",
  "libc",
  "rand_chacha 0.1.1",
  "rand_core 0.4.2",
- "rand_hc 0.1.0",
+ "rand_hc",
  "rand_isaac",
  "rand_jitter",
  "rand_os",
@@ -1131,14 +1206,13 @@ dependencies = [
 
 [[package]]
 name = "rand"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
  "rand_chacha 0.3.1",
  "rand_core 0.6.3",
- "rand_hc 0.3.1",
 ]
 
 [[package]]
@@ -1147,7 +1221,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
 dependencies = [
- "autocfg 0.1.7",
+ "autocfg 0.1.8",
  "rand_core 0.3.1",
 ]
 
@@ -1194,15 +1268,6 @@ dependencies = [
  "rand_core 0.3.1",
 ]
 
-[[package]]
-name = "rand_hc"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
-dependencies = [
- "rand_core 0.6.3",
-]
-
 [[package]]
 name = "rand_isaac"
 version = "0.1.1"
@@ -1243,7 +1308,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
 dependencies = [
- "autocfg 0.1.7",
+ "autocfg 0.1.8",
  "rand_core 0.4.2",
 ]
 
@@ -1273,9 +1338,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
 dependencies = [
  "bitflags",
 ]
@@ -1287,7 +1352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.10",
+ "redox_syscall 0.2.11",
 ]
 
 [[package]]
@@ -1357,6 +1422,20 @@ dependencies = [
  "libc",
 ]
 
+[[package]]
+name = "rustix"
+version = "0.33.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef7ec6a44fba95d21fa522760c03c16ca5ee95cebb6e4ef579cab3e6d7ba6c06"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "winapi 0.3.9",
+]
+
 [[package]]
 name = "rustversion"
 version = "1.0.6"
@@ -1365,9 +1444,9 @@ checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
 
 [[package]]
 name = "rustyline"
-version = "9.0.0"
+version = "9.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "790487c3881a63489ae77126f57048b42d62d3b2bafbf37453ea19eedb6340d6"
+checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039"
 dependencies = [
  "bitflags",
  "cfg-if 1.0.0",
@@ -1377,7 +1456,7 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix 0.22.2",
+ "nix 0.23.1",
  "radix_trie",
  "scopeguard",
  "smallvec",
@@ -1389,9 +1468,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.5"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
 
 [[package]]
 name = "same-file"
@@ -1434,7 +1513,6 @@ dependencies = [
  "git-version",
  "hostname",
  "indexmap",
- "instructions-template",
  "lazy_static",
  "lexical",
  "libc",
@@ -1446,7 +1524,8 @@ dependencies = [
  "ordered-float",
  "phf 0.9.0",
  "predicates-core",
- "proc-macro2 1.0.32",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
  "ref_thread_local",
  "ring",
  "ripemd160",
@@ -1459,15 +1538,20 @@ dependencies = [
  "slice-deque",
  "smallvec",
  "sodiumoxide",
- "static-string-indexing",
  "static_assertions",
+ "strum",
+ "strum_macros",
+ "syn 1.0.88",
+ "to-syn-value",
+ "to-syn-value_derive",
+ "walkdir",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.3.1"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
+checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
 dependencies = [
  "bitflags",
  "core-foundation",
@@ -1478,9 +1562,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.4.2"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e"
+checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -1498,26 +1582,26 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.130"
+version = "1.0.136"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
 
 [[package]]
 name = "serde_derive"
-version = "1.0.130"
+version = "1.0.136"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
+checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.70"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e277c495ac6cd1a01a58d0a0c574568b4d1ddf14f59965c6a58b8d96400b54f3"
+checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
 dependencies = [
  "itoa",
  "ryu",
@@ -1531,7 +1615,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
 dependencies = [
  "lazy_static",
- "parking_lot",
+ "parking_lot 0.11.2",
  "serial_test_derive",
 ]
 
@@ -1541,9 +1625,9 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
@@ -1581,9 +1665,9 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788"
+checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4"
 
 [[package]]
 name = "siphasher"
@@ -1593,9 +1677,9 @@ checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
 
 [[package]]
 name = "siphasher"
-version = "0.3.7"
+version = "0.3.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
 
 [[package]]
 name = "slab"
@@ -1616,9 +1700,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
+checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
 
 [[package]]
 name = "sodiumoxide"
@@ -1638,17 +1722,6 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
-[[package]]
-name = "static-string-indexing"
-version = "0.1.0"
-dependencies = [
- "indexmap",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
- "walkdir",
-]
-
 [[package]]
 name = "static_assertions"
 version = "1.1.0"
@@ -1684,8 +1757,8 @@ checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6"
 dependencies = [
  "phf_generator 0.7.24",
  "phf_shared 0.7.24",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
  "string_cache_shared",
 ]
 
@@ -1708,10 +1781,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38"
 dependencies = [
  "heck",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
  "rustversion",
- "syn 1.0.81",
+ "syn 1.0.88",
 ]
 
 [[package]]
@@ -1733,25 +1806,25 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.81"
+version = "1.0.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
+checksum = "ebd69e719f31e88618baa1eaa6ee2de5c9a1c004f1e9ecdb58e8352a13f20a01"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
  "unicode-xid 0.2.2",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
 dependencies = [
  "cfg-if 1.0.0",
+ "fastrand",
  "libc",
- "rand 0.8.4",
- "redox_syscall 0.2.10",
+ "redox_syscall 0.2.11",
  "remove_dir_all",
  "winapi 0.3.9",
 ]
@@ -1769,9 +1842,9 @@ dependencies = [
 
 [[package]]
 name = "termtree"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16"
+checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b"
 
 [[package]]
 name = "time"
@@ -1786,31 +1859,35 @@ dependencies = [
 [[package]]
 name = "to-syn-value"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447"
 dependencies = [
- "syn 1.0.81",
+ "syn 1.0.88",
  "to-syn-value_derive",
 ]
 
 [[package]]
 name = "to-syn-value_derive"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
 ]
 
 [[package]]
 name = "typenum"
-version = "1.14.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
 
 [[package]]
 name = "unicode-width"
@@ -1888,9 +1965,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.78"
+version = "0.2.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
+checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -1898,53 +1975,53 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.78"
+version = "0.2.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
+checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca"
 dependencies = [
  "bumpalo",
  "lazy_static",
  "log",
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.78"
+version = "0.2.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
+checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01"
 dependencies = [
- "quote 1.0.10",
+ "quote 1.0.15",
  "wasm-bindgen-macro-support",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.78"
+version = "0.2.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
+checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc"
 dependencies = [
- "proc-macro2 1.0.32",
- "quote 1.0.10",
- "syn 1.0.81",
+ "proc-macro2 1.0.36",
+ "quote 1.0.15",
+ "syn 1.0.88",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.78"
+version = "0.2.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
+checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2"
 
 [[package]]
 name = "web-sys"
-version = "0.3.55"
+version = "0.3.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
+checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -1995,9 +2072,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82ca39602d5cbfa692c4b67e3bcbb2751477355141c1ed434c94da4186836ff6"
+checksum = "030b7ff91626e57a05ca64a07c481973cbb2db774e4852c9c7ca342408c6a99a"
 dependencies = [
  "windows_aarch64_msvc",
  "windows_i686_gnu",
@@ -2008,33 +2085,33 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52695a41e536859d5308cc613b4a022261a274390b25bd29dfff4bf08505f3c2"
+checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f54725ac23affef038fecb177de6c9bf065787c2f432f79e3c373da92f3e1d8a"
+checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d5158a43cc43623c0729d1ad6647e62fa384a3d135fd15108d37c683461f64"
+checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc31f409f565611535130cfe7ee8e6655d3fa99c1c61013981e491921b5ce954"
+checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.28.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2b8c7cbd3bfdddd9ab98769f9746a7fad1bca236554cd032b78d768bc0e89f"
+checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1"
 
 [[package]]
 name = "ws2_32-sys"
index b9d8466df5134b02b760a7446ae57470683a1f39..3b0615fc481f665c9142d5210be688a5dec6ec1f 100644 (file)
@@ -9,16 +9,9 @@ repository = "https://github.com/mthom/scryer-prolog"
 license = "BSD-3-Clause"
 keywords = ["prolog", "prolog-interpreter", "prolog-system"]
 categories = ["command-line-utilities"]
-build = "build.rs"
+build = "build/main.rs"
 rust-version = "1.57"
 
-[workspace]
-members = ["crates/num-rug-adapter",
-           "crates/static-string-indexing",
-           "crates/instructions-template",
-           "crates/to-syn-value",
-           "crates/to-syn-value_derive"]
-
 [features]
 num = ["num-rug-adapter"]
 # no default features to make num tests work
@@ -28,9 +21,14 @@ default = ["rug"]
 
 [build-dependencies]
 indexmap = "1.0.2"
-static-string-indexing = { path = "./crates/static-string-indexing" }
-instructions-template = { path = "./crates/instructions-template" }
-proc-macro2 = "*"
+proc-macro2 = "1.0.36"
+quote = "1.0.15"
+strum = "0.23"
+strum_macros = "0.23"
+syn = { version = "1.0.88", features = ['full', 'visit', 'extra-traits'] }
+to-syn-value = "0.1.0"
+to-syn-value_derive = "0.1.0"
+walkdir = "2"
 
 [dependencies]
 cpu-time = "1.0.0"
@@ -44,9 +42,9 @@ indexmap = "1.0.2"
 lazy_static = "1.4.0"
 lexical = "5.2.2"
 libc = "0.2.62"
-modular-bitfield = { git = "https://github.com/mthom/modular-bitfield" } # modular-bitfield = "0.11.2"
+modular-bitfield = "0.11.2"
 nix = "0.15.0"
-num-rug-adapter = { optional = true, path = "./crates/num-rug-adapter" }
+num-rug-adapter = { version = "0.1.6", optional = true }
 ordered-float = "2.1.1"
 phf = { version = "0.9",  features = ["macros"] }
 ref_thread_local = "0.0.0"
@@ -62,7 +60,7 @@ chrono = "0.4.11"
 select = "0.4.3"
 roxmltree = "0.11.0"
 base64 = "0.12.3"
-smallvec = "*"
+smallvec = "1.8.0"
 sodiumoxide = "0.2.6"
 static_assertions = "1.1.0"
 slice-deque = "0.3.0"
@@ -72,5 +70,9 @@ assert_cmd = "1.0.3"
 predicates-core = "1.0.2"
 serial_test = "0.5.1"
 
+[patch.crates-io]
+modular-bitfield = { git = "https://github.com/mthom/modular-bitfield" }
+num-rug-adapter = { git = "https://github.com/mthom/num-rug-adapter" }
+
 [profile.release]
 debug = true
index cb551e3afcc51ce0c29472f74ecdc7b16153d239..7f3faa71035e3a1cf31566582442499611f5160f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+
 # Scryer Prolog
 
 Scryer Prolog aims to become to ISO Prolog what GHC is to Haskell: an open
similarity index 98%
rename from build.rs
rename to build/main.rs
index e0f1d16ea2aa0e9b9d6ebb2bc885265c93c7a783..1129e44c6ac0d6b55e59ad240d8409ccdf04b4b6 100644 (file)
--- a/build.rs
@@ -1,3 +1,6 @@
+mod static_string_indexing;
+mod instructions_template;
+
 use static_string_indexing::index_static_strings;
 use instructions_template::generate_instructions_rs;
 
diff --git a/crates/instructions-template/Cargo.lock b/crates/instructions-template/Cargo.lock
deleted file mode 100644 (file)
index 08be8ba..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "autocfg"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "hashbrown"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "instructions-template"
-version = "0.1.0"
-dependencies = [
- "indexmap",
- "proc-macro2",
- "quote",
- "strum",
- "strum_macros",
- "syn",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "392a54546fda6b7cc663379d0e6ce8b324cf88aecc5a499838e1be9781bdce2e"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
-
-[[package]]
-name = "strum"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb"
-
-[[package]]
-name = "strum_macros"
-version = "0.23.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.84"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecb2e6da8ee5eb9a61068762a32fa9619cc591ceb055b3687f4cd4051ec2e06b"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "to-syn-value"
-version = "0.1.0"
-dependencies = [
- "syn",
- "to-syn-value_derive",
-]
-
-[[package]]
-name = "to-syn-value_derive"
-version = "0.1.0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
diff --git a/crates/instructions-template/Cargo.toml b/crates/instructions-template/Cargo.toml
deleted file mode 100644 (file)
index 92f130e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "instructions-template"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
-indexmap = "*"
-proc-macro2 = "*"
-quote = "*"
-strum = "0.23"
-strum_macros = "0.23"
-syn = { version = "*", features = ['full', 'visit', 'extra-traits'] }
-to-syn-value = { path = "../to-syn-value" }
-to-syn-value_derive = { path = "../to-syn-value_derive" }
\ No newline at end of file
diff --git a/crates/num-rug-adapter/Cargo.toml b/crates/num-rug-adapter/Cargo.toml
deleted file mode 100644 (file)
index 4f1ae28..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-[package]
-name = "num-rug-adapter"
-version = "0.1.5"
-authors = ["Marco A L Barbosa <[email protected]>"]
-edition = "2021"
-description = "An adapter to use num crate where rug is needed."
-license = "MIT/Apache-2.0"
-repository = "https://github.com/malbarbo/num-rug-adapter"
-keywords = ["mathematics", "numerics", "bignum"]
-categories = ["api-bindings", "science"]
-readme = "README.md"
-
-[dependencies]
-libc = "0.2"
-num-bigint = "0.2"
-num-integer = "0.1.41"
-num-rational = "0.2"
-num-traits = "0.2"
diff --git a/crates/num-rug-adapter/src/lib.rs b/crates/num-rug-adapter/src/lib.rs
deleted file mode 100644 (file)
index 6cb1991..0000000
+++ /dev/null
@@ -1,888 +0,0 @@
-use num_bigint::{BigInt, ParseBigIntError};
-use num_integer::Integer as _;
-use num_rational::BigRational;
-use num_traits::{FromPrimitive, Num, Signed, ToPrimitive};
-use num_traits::identities::One;
-
-use std::cmp::Ordering;
-use std::fmt::{self, Display, Formatter};
-use std::ops::*;
-
-use std::str::FromStr;
-
-#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-pub struct Integer(BigInt);
-
-impl Integer {
-    #[inline]
-    pub fn new() -> Self {
-        Integer(BigInt::default())
-    }
-
-    #[inline]
-    pub fn from_str_radix(s: &str, radix: u32) -> Result<Self, ParseBigIntError> {
-        BigInt::from_str_radix(s, radix).map(Integer)
-    }
-
-    #[inline]
-    pub fn to_u8(&self) -> Option<u8> {
-        self.0.to_u8()
-    }
-
-    #[inline]
-    pub fn to_u32(&self) -> Option<u32> {
-        self.0.to_u32()
-    }
-
-    #[inline]
-    pub fn to_u64(&self) -> Option<u64> {
-        self.0.to_u64()
-    }
-
-    #[inline]
-    pub fn to_usize(&self) -> Option<usize> {
-        self.0.to_usize()
-    }
-
-    #[inline]
-    pub fn to_i32(&self) -> Option<i32> {
-        self.0.to_i32()
-    }
-
-    #[inline]
-    pub fn to_isize(&self) -> Option<isize> {
-        self.0.to_isize()
-    }
-
-    #[inline]
-    pub fn to_f64(&self) -> f64 {
-        self.0.to_f64().unwrap()
-    }
-
-    #[inline]
-    pub fn abs(&self) -> Self {
-        Integer(self.0.abs())
-    }
-
-    #[inline]
-    pub fn abs_ref(&self) -> Self {
-        Integer(self.0.abs())
-    }
-
-    #[inline]
-    pub fn div_rem(&self, other: Self) -> (Self, Self) {
-        let (a, b) = num_integer::Integer::div_rem(&self.0, &other.0);
-        (Integer(a), Integer(b))
-    }
-
-    #[inline]
-    pub fn div_rem_ref(&self, other: &Self) -> (Self, Self) {
-        let (a, b) = num_integer::Integer::div_rem(&self.0, &other.0);
-        (Integer(a), Integer(b))
-    }
-
-    #[inline]
-    pub fn div_rem_floor(&self, other: Self) -> (Self, Self) {
-        let (a, b) = num_integer::Integer::div_mod_floor(&self.0, &other.0);
-        (Integer(a), Integer(b))
-    }
-
-    #[inline]
-    pub fn div_rem_floor_ref(&self, other: &Self) -> (Self, Self) {
-        let (a, b) = num_integer::Integer::div_mod_floor(&self.0, &other.0);
-        (Integer(a), Integer(b))
-    }
-
-    #[inline]
-    pub fn mod_u(&self, modulo: u32) -> u32 {
-        (self.0.abs() % modulo).to_u32().unwrap()
-    }
-
-    #[inline]
-    pub fn is_odd(&self) -> bool {
-        num_integer::Integer::is_odd(&self.0)
-    }
-
-    #[inline]
-    pub fn from_f64(v: f64) -> Option<Self> {
-        BigInt::from_f64(v).map(Integer)
-    }
-
-    #[inline]
-    pub fn gcd_ref(&self, other: &Self) -> Self {
-        Integer(num_integer::Integer::gcd(&self.0, &other.0))
-    }
-
-    #[inline]
-    pub fn gcd(&self, other: &Self) -> Self {
-        Integer(num_integer::Integer::gcd(&self.0, &other.0))
-    }
-
-    #[inline]
-    pub fn count_ones(&self) -> Option<u32> {
-        Some(self.0.to_u32_digits().1.iter().map(|&d| d.count_ones()).sum())
-    }
-}
-
-impl From<&Integer> for Integer {
-    #[inline]
-    fn from(s: &Integer) -> Self {
-        s.clone()
-    }
-}
-
-impl From<i32> for Integer {
-    #[inline]
-    fn from(s: i32) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl From<isize> for Integer {
-    #[inline]
-    fn from(s: isize) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl From<u8> for Integer {
-    #[inline]
-    fn from(s: u8) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl From<u32> for Integer {
-    #[inline]
-    fn from(s: u32) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl From<u64> for Integer {
-    #[inline]
-    fn from(s: u64) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl From<usize> for Integer {
-    #[inline]
-    fn from(s: usize) -> Self {
-        Integer(BigInt::from(s))
-    }
-}
-
-impl Mul for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn mul(self, other: Integer) -> Self::Output {
-        Integer(self.0 * other.0)
-    }
-}
-
-impl Mul<u32> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn mul(self, other: u32) -> Self::Output {
-        Integer(self.0 * other)
-    }
-}
-
-impl Mul<&Integer> for Integer {
-    type Output = Integer;
-
-    fn mul(self, other: &Integer) -> Self::Output {
-        Integer(self.0 * &other.0)
-    }
-}
-
-impl MulAssign<&Integer> for Integer {
-    #[inline]
-    fn mul_assign(&mut self, other: &Integer) {
-        self.0 *= &other.0;
-    }
-}
-
-impl Add for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn add(self, other: Integer) -> Self::Output {
-        Integer(self.0 + other.0)
-    }
-}
-
-impl Add<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn add(self, other: Integer) -> Self::Output {
-        Integer(&self.0 + other.0)
-    }
-}
-
-impl Add<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn add(self, other: &Integer) -> Self::Output {
-        Integer(self.0 + &other.0)
-    }
-}
-
-impl Add<&Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn add(self, other: &Integer) -> Self::Output {
-        Integer(&self.0 + &other.0)
-    }
-}
-
-impl AddAssign<i64> for Integer {
-    #[inline]
-    fn add_assign(&mut self, other: i64) {
-        self.0 += other;
-    }
-}
-
-impl AddAssign<&Integer> for Integer {
-    #[inline]
-    fn add_assign(&mut self, other: &Integer) {
-        self.0 += &other.0;
-    }
-}
-
-impl Div for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn div(self, other: Integer) -> Integer {
-        Integer(self.0 / other.0)
-    }
-}
-
-impl Div<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn div(self, other: &Integer) -> Integer {
-        Integer(self.0 / &other.0)
-    }
-}
-
-impl Div<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn div(self, other: Integer) -> Integer {
-        Integer(&self.0 / &other.0)
-    }
-}
-
-impl Shr<u32> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn shr(self, rhs: u32) -> Self::Output {
-        Integer(self.0 >> rhs as usize)
-    }
-}
-
-impl Shr<u32> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn shr(self, rhs: u32) -> Self::Output {
-        Integer(&self.0 >> rhs as usize)
-    }
-}
-
-impl ShrAssign<u32> for Integer {
-    #[inline]
-    fn shr_assign(&mut self, rhs: u32) {
-        self.0 >>= rhs as usize;
-    }
-}
-
-impl Shl<u32> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn shl(self, rhs: u32) -> Self::Output {
-        Integer(self.0 << rhs as usize)
-    }
-}
-
-impl Shl<u32> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn shl(self, rhs: u32) -> Self::Output {
-        Integer(&self.0 << rhs as usize)
-    }
-}
-
-impl Not for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn not(self) -> Self::Output {
-        Integer(!self.0)
-    }
-}
-
-impl Not for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn not(self) -> Self::Output {
-        Integer(!&self.0)
-    }
-}
-
-impl Rem for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn rem(self, other: Integer) -> Self::Output {
-        Integer(self.0.mod_floor(&other.0))
-    }
-}
-
-impl Rem<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn rem(self, other: &Integer) -> Self::Output {
-        Integer(self.0.mod_floor(&other.0))
-    }
-}
-
-impl Rem<&Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn rem(self, other: &Integer) -> Self::Output {
-        Integer(self.0.mod_floor(&other.0))
-    }
-}
-
-impl Rem<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn rem(self, other: Integer) -> Self::Output {
-        Integer(self.0.mod_floor(&other.0))
-    }
-}
-
-impl BitAnd for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitand(self, other: Integer) -> Self::Output {
-        Integer(self.0 & &other.0)
-    }
-}
-
-impl BitAnd<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitand(self, other: &Integer) -> Self::Output {
-        Integer(self.0 & &other.0)
-    }
-}
-
-impl BitAnd<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitand(self, other: Integer) -> Self::Output {
-        Integer(&self.0 & other.0)
-    }
-}
-
-impl BitAnd for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitand(self, other: &Integer) -> Self::Output {
-        Integer(&self.0 & &other.0)
-    }
-}
-
-impl BitOr for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitor(self, other: Integer) -> Self::Output {
-        Integer(self.0 | other.0)
-    }
-}
-
-impl BitOr<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitor(self, other: &Integer) -> Self::Output {
-        Integer(self.0 | &other.0)
-    }
-}
-
-impl BitOr<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitor(self, other: Integer) -> Self::Output {
-        Integer(&self.0 | other.0)
-    }
-}
-
-impl BitOr for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitor(self, other: &Integer) -> Self::Output {
-        Integer(&self.0 | &other.0)
-    }
-}
-
-impl BitXor for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitxor(self, other: Integer) -> Self::Output {
-        Integer(self.0 ^ other.0)
-    }
-}
-
-impl BitXor<&Integer> for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitxor(self, other: &Integer) -> Self::Output {
-        Integer(self.0 ^ &other.0)
-    }
-}
-
-impl BitXor<Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitxor(self, other: Integer) -> Self::Output {
-        Integer(&self.0 ^ other.0)
-    }
-}
-
-impl BitXor<&Integer> for &Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn bitxor(self, other: &Integer) -> Self::Output {
-        Integer(&self.0 ^ &other.0)
-    }
-}
-
-impl PartialEq<i32> for Integer {
-    #[inline]
-    fn eq(&self, other: &i32) -> bool {
-        self.0 == BigInt::from(*other)
-    }
-}
-
-impl PartialEq<i64> for Integer {
-    #[inline]
-    fn eq(&self, other: &i64) -> bool {
-        self.0 == BigInt::from(*other)
-    }
-}
-
-impl PartialEq<isize> for Integer {
-    #[inline]
-    fn eq(&self, other: &isize) -> bool {
-        self.0 == BigInt::from(*other)
-    }
-}
-
-impl PartialEq<usize> for Integer {
-    #[inline]
-    fn eq(&self, other: &usize) -> bool {
-        self.0 == BigInt::from(*other)
-    }
-}
-
-impl PartialEq<Integer> for isize {
-    #[inline]
-    fn eq(&self, other: &Integer) -> bool {
-        other.0 == BigInt::from(*self)
-    }
-}
-
-impl PartialOrd<i32> for Integer {
-    #[inline]
-    fn partial_cmp(&self, other: &i32) -> Option<Ordering> {
-        self.0.partial_cmp(&BigInt::from(*other))
-    }
-}
-
-impl PartialOrd<i64> for Integer {
-    #[inline]
-    fn partial_cmp(&self, other: &i64) -> Option<Ordering> {
-        self.0.partial_cmp(&BigInt::from(*other))
-    }
-}
-
-impl PartialOrd<isize> for Integer {
-    #[inline]
-    fn partial_cmp(&self, other: &isize) -> Option<Ordering> {
-        self.0.partial_cmp(&BigInt::from(*other))
-    }
-}
-
-impl PartialOrd<usize> for Integer {
-    #[inline]
-    fn partial_cmp(&self, other: &usize) -> Option<Ordering> {
-        self.0.partial_cmp(&BigInt::from(*other))
-    }
-}
-
-impl FromStr for Integer {
-    type Err = <BigInt as FromStr>::Err;
-
-    #[inline]
-    fn from_str(s: &str) -> Result<Self, Self::Err> {
-        Ok(Integer(s.parse()?))
-    }
-}
-
-impl Neg for Integer {
-    type Output = Integer;
-
-    #[inline]
-    fn neg(self) -> Self {
-        Integer(-self.0)
-    }
-}
-
-impl Display for Integer {
-    #[inline]
-    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
-        write!(f, "{}", self.0)
-    }
-}
-
-// Rational
-
-#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-pub struct Rational(BigRational);
-
-impl Rational {
-    #[inline]
-    pub fn new() -> Self {
-        Rational(BigRational::from(BigInt::default()))
-    }
-
-    #[inline]
-    pub fn from_f64(v: f64) -> Option<Self> {
-        BigRational::from_f64(v).map(Rational)
-    }
-
-    #[inline]
-    pub fn to_f64(&self) -> f64 {
-        self.0.numer().to_f64().unwrap() / self.0.denom().to_f64().unwrap()
-    }
-
-    #[inline]
-    pub fn numer(&self) -> &Integer {
-        unsafe { ::std::mem::transmute(self.0.numer()) }
-    }
-
-    #[inline]
-    pub fn denom(&self) -> &Integer {
-        unsafe { ::std::mem::transmute(self.0.denom()) }
-    }
-
-    #[inline]
-    pub fn abs(self) -> Self {
-        Rational(self.0.abs())
-    }
-
-    #[inline]
-    pub fn abs_ref(&self) -> Self {
-        Rational(self.0.abs())
-    }
-
-    #[inline]
-    pub fn fract_floor_ref(&self) -> &Self {
-        panic!()
-    }
-}
-
-impl From<isize> for Rational {
-    #[inline]
-    fn from(s: isize) -> Self {
-        Rational(BigRational::new_raw(BigInt::from(s), One::one()))
-    }
-}
-
-impl From<&Integer> for Rational {
-    #[inline]
-    fn from(s: &Integer) -> Self {
-        Rational::from(s.clone())
-    }
-}
-
-impl From<&Rational> for Rational {
-    #[inline]
-    fn from(s: &Rational) -> Self {
-        s.clone()
-    }
-}
-
-impl From<Integer> for Rational {
-    #[inline]
-    fn from(i: Integer) -> Self {
-        Rational(BigRational::from(i.0))
-    }
-}
-
-impl Add for Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn add(self, other: Rational) -> Self::Output {
-        Rational(self.0 + other.0)
-    }
-}
-
-impl Add<&Rational> for Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn add(self, other: &Rational) -> Self::Output {
-        Rational(self.0 + &other.0)
-    }
-}
-
-impl PartialEq<i32> for Rational {
-    #[inline]
-    fn eq(&self, other: &i32) -> bool {
-        self.0 == BigRational::from(BigInt::from(*other))
-    }
-}
-
-impl PartialEq<i64> for Rational {
-    #[inline]
-    fn eq(&self, other: &i64) -> bool {
-        self.0 == BigRational::from(BigInt::from(*other))
-    }
-}
-
-impl PartialEq<isize> for Rational {
-    #[inline]
-    fn eq(&self, other: &isize) -> bool {
-        self == &Rational::from(*other)
-    }
-}
-
-impl PartialEq<Rational> for isize {
-    #[inline]
-    fn eq(&self, other: &Rational) -> bool {
-        other == &Rational::from(*self)
-    }
-}
-
-impl PartialOrd<isize> for Rational {
-    #[inline]
-    fn partial_cmp(&self, other: &isize) -> Option<Ordering> {
-        self.0.partial_cmp(&BigRational::from(BigInt::from(*other)))
-    }
-}
-
-impl PartialOrd<i64> for Rational {
-    #[inline]
-    fn partial_cmp(&self, other: &i64) -> Option<Ordering> {
-        self.0.partial_cmp(&BigRational::from(BigInt::from(*other)))
-    }
-}
-
-impl PartialOrd<i32> for Rational {
-    #[inline]
-    fn partial_cmp(&self, other: &i32) -> Option<Ordering> {
-        self.0.partial_cmp(&BigRational::from(BigInt::from(*other)))
-    }
-}
-
-impl Neg for Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn neg(self) -> Self {
-        Rational(-self.0)
-    }
-}
-
-impl Mul for Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn mul(self, other: Rational) -> Self::Output {
-        Rational(self.0 * other.0)
-    }
-}
-
-impl Mul<&Rational> for Rational {
-    type Output = Rational;
-
-    fn mul(self, other: &Rational) -> Self::Output {
-        Rational(self.0 * &other.0)
-    }
-}
-
-impl Div for Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn div(self, other: Rational) -> Self::Output {
-        Rational(self.0 / other.0)
-    }
-}
-
-impl Div<&Rational> for &Rational {
-    type Output = Rational;
-
-    #[inline]
-    fn div(self, other: &Rational) -> Self::Output {
-        Rational(&self.0 / &other.0)
-    }
-}
-
-impl Display for Rational {
-    #[inline]
-    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
-        write!(f, "{}", self.0)
-    }
-}
-
-pub trait Assign<Src = Self> {
-    fn assign(&mut self, src: Src);
-}
-
-impl Assign<&Rational> for (&mut Rational, &mut Integer) {
-    fn assign(&mut self, _src: &Rational) {
-        panic!()
-    }
-}
-
-pub mod ops {
-    use super::{Integer, Rational};
-
-    pub trait Pow<Rhs> {
-        type Output;
-        fn pow(self, rhs: Rhs) -> Self::Output;
-    }
-
-    impl Pow<u32> for Integer {
-        type Output = Integer;
-
-        fn pow(self, rhs: u32) -> Self::Output {
-            Integer(num_traits::Pow::pow(&self.0, rhs))
-        }
-    }
-
-    pub trait PowAssign<Rhs> {
-        fn pow_assign(&mut self, rhs: Rhs);
-    }
-
-    impl PowAssign<u32> for Integer {
-        fn pow_assign(&mut self, rhs: u32) {
-            // FIXME: make it efficient
-            self.0 = num_traits::Pow::pow(&self.0, rhs);
-        }
-    }
-
-    pub trait NegAssign {
-        fn neg_assign(&mut self);
-    }
-
-    impl NegAssign for Integer {
-        fn neg_assign(&mut self) {
-            self.0 = -std::mem::replace(self, Integer::new()).0;
-        }
-    }
-
-    impl NegAssign for Rational {
-        #[inline]
-        fn neg_assign(&mut self) {
-            self.0 = -std::mem::replace(self, Rational::new()).0;
-        }
-    }
-}
-
-pub mod rand {
-    use super::Integer;
-    use std::marker::PhantomData;
-
-    pub struct RandState<'a>{
-        _marker: PhantomData<&'a ()>,
-    }
-
-    impl<'a> RandState<'a> {
-        pub fn new() -> Self {
-            unsafe { libc::srand(libc::time(std::ptr::null_mut()) as _) };
-            RandState { _marker: PhantomData }
-        }
-
-        pub fn borrow_mut(&self) -> &Self {
-            self
-        }
-
-        pub fn bits(&mut self, bits: u32) -> u32 {
-            assert!(bits <= 32);
-            (unsafe { libc::rand() } as u32) & (u32::max_value() >> (32 - bits))
-        }
-
-        pub fn seed(&mut self, seed: &Integer) {
-            unsafe { libc::srand(seed.to_f64() as _)}
-        }
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-    use super::ops::NegAssign;
-
-    #[test]
-    fn bits() {
-        let mut rand = rand::RandState::new();
-        for bits in 1..32 {
-            for _ in 0..100 {
-                let r = rand.bits(bits);
-                let max = 1 << bits;
-                assert!(max > r, "{} > {}", max, r);
-            }
-        }
-    }
-
-    #[test]
-    fn neg_rational() {
-        let mut x = Rational::from_f64(5.0).unwrap();
-        let x_neg = Rational::from_f64(-5.0).unwrap();
-        x.neg_assign();
-        assert_eq!(x, x_neg);
-    }
-
-    #[test]
-    fn neg_integer() {
-        let mut x = Integer::from(5);
-        let x_neg = Integer::from(-5);
-        x.neg_assign();
-        assert_eq!(x, x_neg);
-    }
-}
diff --git a/crates/static-string-indexing/Cargo.toml b/crates/static-string-indexing/Cargo.toml
deleted file mode 100644 (file)
index 1432ae6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[package]
-name = "static-string-indexing"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
-proc-macro2 = "*"
-syn = { version = "*", features = ['full', 'visit', 'extra-traits'] }
-indexmap = "*"
-walkdir = "2"
-quote = "*"
diff --git a/crates/to-syn-value/Cargo.toml b/crates/to-syn-value/Cargo.toml
deleted file mode 100644 (file)
index 3fa4953..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-[package]
-name = "to-syn-value"
-version = "0.1.0"
-authors = ["Mark Thom <[email protected]>"]
-edition = "2021"
-publish = false
-
-[dependencies]
-syn = { version = "*", features = ['full', 'visit', 'extra-traits'] }
-to-syn-value_derive = { path = "../to-syn-value_derive" }
\ No newline at end of file
diff --git a/crates/to-syn-value/src/lib.rs b/crates/to-syn-value/src/lib.rs
deleted file mode 100644 (file)
index 753c44a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-pub trait ToDeriveInput {
-    fn to_derive_input() -> syn::DeriveInput;
-}
diff --git a/crates/to-syn-value_derive/Cargo.toml b/crates/to-syn-value_derive/Cargo.toml
deleted file mode 100644 (file)
index 9dc0e8a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "to-syn-value_derive"
-version = "0.1.0"
-authors = ["Mark Thom <[email protected]>"]
-edition = "2021"
-publish = false
-
-[lib]
-proc-macro = true
-
-[dependencies]
-proc-macro2 = "*"
-syn = { version = "*", features = ['full', 'visit', 'extra-traits'] }
-quote = "*"
\ No newline at end of file
diff --git a/crates/to-syn-value_derive/src/lib.rs b/crates/to-syn-value_derive/src/lib.rs
deleted file mode 100644 (file)
index 13845ac..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-use syn::*;
-use quote::*;
-
-#[proc_macro_derive(ToDeriveInput)]
-pub fn derive_to_derive_input(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
-    let derive_input = parse_macro_input!(input as DeriveInput);
-    let ty_name = derive_input.ident.clone();
-
-    quote! {
-        use to_syn_value::*;
-
-        impl ToDeriveInput for #ty_name {
-            fn to_derive_input() -> syn::DeriveInput {
-                syn::parse_quote! {
-                    #derive_input
-                }
-            }
-        }
-    }.into()
-}