diff --git a/.github/workflows/ci-unix.yml b/.github/workflows/ci-unix.yml index 657c86d..106018c 100644 --- a/.github/workflows/ci-unix.yml +++ b/.github/workflows/ci-unix.yml @@ -14,7 +14,7 @@ jobs: llvm_version: [12, 13] steps: - name: Checkout sources - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 @@ -23,10 +23,10 @@ jobs: override: true - name: Cache Rust environment - uses: Swatinem/rust-cache@v1 + uses: Swatinem/rust-cache@v2 - name: Install LLVM - uses: KyleMayes/install-llvm-action@v1 + uses: KyleMayes/install-llvm-action@v2 with: version: "${{ matrix.llvm_version }}.0" @@ -34,7 +34,7 @@ jobs: if: matrix.os == 'ubuntu-latest' run: | sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com --recv-key C99B11DEB97541F0 - sudo apt-get update && sudo apt-get install -y libtinfo5 + sudo apt-get update && sudo apt-get install -y libtinfo6 - name: Install cargo-make uses: actions-rs/cargo@v1 diff --git a/.github/workflows/release-unix.yml b/.github/workflows/release-unix.yml index 2a903cb..eb47035 100644 --- a/.github/workflows/release-unix.yml +++ b/.github/workflows/release-unix.yml @@ -13,7 +13,7 @@ jobs: os: [macos-latest, ubuntu-latest] rust: - stable - llvm_version: [12, 13] + llvm_version: [15, 16] env: C_SDK_VERSION: v0.1.1 LLVM_VERSION: ${{ matrix.llvm_version }} @@ -21,7 +21,7 @@ jobs: TESTING_TAG: v0.0.0-local steps: - name: Checkout sources - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 @@ -30,10 +30,10 @@ jobs: override: true - name: Cache Rust environment - uses: Swatinem/rust-cache@v1 + uses: Swatinem/rust-cache@v2 - name: Install LLVM - uses: KyleMayes/install-llvm-action@v1 + uses: KyleMayes/install-llvm-action@v2 with: version: "${{ matrix.llvm_version }}.0" @@ -41,7 +41,7 @@ jobs: if: matrix.os == 'ubuntu-latest' run: | sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com --recv-key C99B11DEB97541F0 - sudo apt-get update && sudo apt-get install -y libtinfo5 cmake + sudo apt-get update && sudo apt-get install -y libtinfo6 cmake - name: Check LLVM installation run: llvm-config --version @@ -80,7 +80,7 @@ jobs: run: ./scripts/release/archive.sh - name: Upload archive to CI summary - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE }}-artifacts path: | diff --git a/Cargo.lock b/Cargo.lock index e04d19b..3dcbd33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,1929 +1,3739 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] -name = "aho-corasick" -version = "0.7.18" +name = "addr2line" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "memchr", + "gimli", ] [[package]] -name = "atty" -version = "0.2.14" +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ - "hermit-abi", - "libc", - "winapi", + "memchr", ] [[package]] -name = "autocfg" -version = "1.1.0" +name = "anstream" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] [[package]] -name = "base64" -version = "0.13.0" +name = "anstyle" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] -name = "bitflags" -version = "1.3.2" +name = "anstyle-parse" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] [[package]] -name = "bumpalo" -version = "3.9.1" +name = "anstyle-query" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] [[package]] -name = "byteorder" -version = "1.4.3" +name = "anstyle-wincon" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +dependencies = [ + "anstyle", + "windows-sys 0.59.0", +] [[package]] -name = "bytes" -version = "1.1.0" +name = "anyhow" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] -name = "cc" -version = "1.0.72" +name = "approx" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-complex", + "num-traits", +] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "async-socks5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "8da2537846e16b96d2972ee52a3b355663872a1a687ce6d57a3b6f6b6a181c89" +dependencies = [ + "thiserror 1.0.69", + "tokio", +] [[package]] -name = "clap" -version = "3.1.6" +name = "async-stream" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ - "atty", - "bitflags", - "clap_derive", - "indexmap", - "lazy_static", - "os_str_bytes", - "strsim", - "termcolor", - "textwrap", + "async-stream-impl", + "futures-core", + "pin-project-lite", ] [[package]] -name = "clap_derive" -version = "3.1.4" +name = "async-stream-impl" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.90", ] [[package]] -name = "cmake" -version = "0.1.48" +name = "async-trait" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "cc", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "combine" -version = "4.6.3" +name = "atomic" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b727aacc797f9fc28e355d21f34709ac4fc9adecfe470ad07b8f4464f53062" +checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" dependencies = [ - "bytes", - "memchr", + "bytemuck", ] [[package]] -name = "concolor" -version = "0.0.8" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015267563b1df20adccdd00cb05257b1dfbea70a04928e9cf88ffb850c1a40af" -dependencies = [ - "atty", - "bitflags", - "concolor-query", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "concolor-query" -version = "0.0.5" +name = "autocfg" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6417fe6fc03a8b533fd2177742eeb39a90c7233eedec7bac96d4d6b69a09449" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] -name = "console" -version = "0.15.0" +name = "automod" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "terminal_size", - "winapi", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "content_inspector" -version = "0.2.4" +name = "axum" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit", "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.2", + "tower-layer", + "tower-service", ] [[package]] -name = "core-foundation" -version = "0.9.3" +name = "axum-core" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ - "core-foundation-sys", - "libc", + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", ] [[package]] -name = "core-foundation-sys" -version = "0.8.3" +name = "backoff" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand", + "tokio", +] [[package]] -name = "crossbeam-channel" -version = "0.5.4" +name = "backtrace" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ + "addr2line", "cfg-if", - "crossbeam-utils", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] -name = "crossbeam-deque" -version = "0.8.1" +name = "base64" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] -name = "crossbeam-epoch" -version = "0.9.8" +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", -] +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "crossbeam-utils" -version = "0.8.8" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" -dependencies = [ - "cfg-if", - "lazy_static", -] +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "dirs" -version = "4.0.0" +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "dirs-sys", + "generic-array", ] [[package]] -name = "dirs-sys" -version = "0.3.7" +name = "built" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "b99c4cdc7b2c2364182331055623bdf45254fcb679fea565c40c3c11c101889a" dependencies = [ - "libc", - "redox_users", - "winapi", + "cargo-lock", ] [[package]] -name = "dunce" -version = "1.0.2" +name = "bumpalo" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453440c271cf5577fd2a40e4942540cb7d0d2f85e27c8d07dd0023c925a67541" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] -name = "either" -version = "1.6.1" +name = "bytecount" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] -name = "encode_unicode" -version = "0.3.6" +name = "bytemuck" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] -name = "encoding_rs" -version = "0.8.31" +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" -dependencies = [ - "cfg-if", -] +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "enum-as-inner" -version = "0.5.0" +name = "bytes" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "432f044e9077ad6666f3446df0489a71ac3ed0336ea54edf6b85e00cd7562283" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" + +[[package]] +name = "cached" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b195e4fbc4b6862bbd065b991a34750399c119797efff72492f28a5864de8700" dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", + "async-trait", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "once_cell", + "thiserror 1.0.69", + "tokio", ] [[package]] -name = "env_logger" -version = "0.9.0" +name = "cached_proc_macro" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082" dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "error-chain" -version = "0.10.0" +name = "cached_proc_macro_types" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" [[package]] -name = "eyre" -version = "0.6.6" +name = "cargo-lock" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc225d8f637923fe585089fcf03e705c222131232d2c1fb622e84ecf725d0eb8" +checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72" dependencies = [ - "indenter", - "once_cell", + "semver", + "serde", + "toml 0.7.8", + "url", ] [[package]] -name = "fastrand" -version = "1.7.0" +name = "cc" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "instant", + "jobserver", + "libc", + "shlex", ] [[package]] -name = "filetime" -version = "0.2.15" +name = "cfg-expr" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "winapi", + "smallvec", + "target-lexicon", ] [[package]] -name = "fixedbitset" -version = "0.2.0" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "fnv" -version = "1.0.7" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "chrono" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ - "foreign-types-shared", + "num-traits", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "clap" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +dependencies = [ + "clap_builder", + "clap_derive", +] [[package]] -name = "form_urlencoded" -version = "1.0.1" +name = "clap_builder" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ - "matches", - "percent-encoding", + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", ] [[package]] -name = "futures" -version = "0.3.21" +name = "clap_derive" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "futures-channel" -version = "0.3.21" +name = "clap_lex" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" -dependencies = [ - "futures-core", - "futures-sink", -] +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] -name = "futures-core" -version = "0.3.21" +name = "colorchoice" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] -name = "futures-executor" -version = "0.3.21" +name = "console" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ - "futures-core", - "futures-task", - "futures-util", + "encode_unicode", + "libc", + "once_cell", + "windows-sys 0.59.0", ] [[package]] -name = "futures-io" -version = "0.3.21" +name = "content_inspector" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" +dependencies = [ + "memchr", +] [[package]] -name = "futures-macro" -version = "0.3.21" +name = "core-foundation" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "core-foundation-sys", + "libc", ] [[package]] -name = "futures-sink" -version = "0.3.21" +name = "core-foundation" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] [[package]] -name = "futures-task" -version = "0.3.21" +name = "core-foundation-sys" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "futures-util" -version = "0.3.21" +name = "cpufeatures" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "libc", ] [[package]] -name = "getrandom" -version = "0.2.6" +name = "crossbeam" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" dependencies = [ - "cfg-if", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", ] [[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "h2" -version = "0.3.13" +name = "crossbeam-channel" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", + "crossbeam-utils", ] [[package]] -name = "hashbrown" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "hermit-abi" -version = "0.1.19" +name = "crossbeam-deque" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "libc", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "http" -version = "0.2.6" +name = "crossbeam-epoch" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "bytes", - "fnv", - "itoa", + "crossbeam-utils", ] [[package]] -name = "http-body" -version = "0.4.4" +name = "crossbeam-queue" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "bytes", - "http", - "pin-project-lite", + "crossbeam-utils", ] [[package]] -name = "httparse" -version = "1.6.0" +name = "crossbeam-utils" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] -name = "httpdate" -version = "1.0.2" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] [[package]] -name = "humantime" -version = "2.1.0" +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] [[package]] -name = "humantime-serde" -version = "1.1.1" +name = "darling" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "humantime", - "serde", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] -name = "hyper" -version = "0.14.18" +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "hyper-rustls" -version = "0.23.0" +name = "darling_core" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "http", - "hyper", - "rustls", - "tokio", - "tokio-rustls", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.90", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", + "darling_core 0.14.4", + "quote", + "syn 1.0.109", ] [[package]] -name = "idna" -version = "0.2.3" +name = "darling_macro" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "darling_core 0.20.10", + "quote", + "syn 2.0.90", ] [[package]] -name = "indenter" -version = "0.3.3" +name = "deranged" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] [[package]] -name = "indexmap" -version = "1.9.1" +name = "derive_builder" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" dependencies = [ - "autocfg", - "hashbrown", + "derive_builder_macro 0.12.0", ] [[package]] -name = "inkwell" -version = "0.1.0" -source = "git+https://github.com/TheDan64/inkwell?branch=master#36c3b106e61b1b45295a35f94023d93d9328c76f" +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" dependencies = [ - "either", - "inkwell_internals", - "libc", - "llvm-sys 120.2.3", - "llvm-sys 130.0.3", - "once_cell", - "parking_lot", + "derive_builder_macro 0.20.2", ] [[package]] -name = "inkwell_internals" -version = "0.5.0" -source = "git+https://github.com/TheDan64/inkwell?branch=master#36c3b106e61b1b45295a35f94023d93d9328c76f" +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ + "darling 0.14.4", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] -name = "insta" -version = "1.12.0" +name = "derive_builder_core" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c0c443f6dceb3a1cb7607c87501aa91e4b9c976044f725c2a74ca2152c91a4" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "console", - "once_cell", - "serde", - "serde_json", - "serde_yaml", - "similar", + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "instant" -version = "0.1.12" +name = "derive_builder_macro" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ - "cfg-if", + "derive_builder_core 0.12.0", + "syn 1.0.109", ] [[package]] -name = "ipnet" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" - -[[package]] -name = "itertools" -version = "0.10.3" +name = "derive_builder_macro" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ - "either", + "derive_builder_core 0.20.2", + "syn 2.0.90", ] [[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "js-sys" -version = "0.3.57" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "wasm-bindgen", + "block-buffer", + "crypto-common", ] [[package]] -name = "kstring" -version = "1.0.6" +name = "dircpy" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b310ccceade8121d7d77fee406160e457c2f4e7c7982d589da3499bc7ea4526" +checksum = "a88521b0517f5f9d51d11925d8ab4523497dcf947073fa3231a311b63941131c" dependencies = [ - "serde", + "jwalk", + "log", + "walkdir", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "dirs" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] [[package]] -name = "lexical" -version = "6.1.1" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ - "lexical-core", + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", ] [[package]] -name = "lexical-core" -version = "0.8.5" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "lexical-parse-float" -version = "0.8.5" +name = "dunce" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] -name = "lexical-parse-integer" -version = "0.8.6" +name = "either" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] -name = "lexical-util" -version = "0.8.5" +name = "encode_unicode" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] -name = "lexical-write-float" -version = "0.8.5" +name = "enum-as-inner" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "lexical-write-integer" -version = "0.8.5" +name = "env_filter" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ - "lexical-util", - "static_assertions", + "log", + "regex", ] [[package]] -name = "libc" -version = "0.2.122" +name = "env_logger" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] [[package]] -name = "linked-hash-map" -version = "0.5.4" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "llvm-sys" -version = "120.2.3" +name = "errno" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce76f8393b7a607a906087666db398d872db739622e644e58552c198ccdfdf45" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ - "cc", - "lazy_static", "libc", - "regex", - "semver", + "windows-sys 0.59.0", ] [[package]] -name = "llvm-sys" -version = "130.0.3" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95eb03b4f7ae21f48ef7c565a3e3aa22c50616aea64645fb1fd7f6f56b51c274" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ - "cc", - "lazy_static", - "libc", - "regex", - "semver", + "indenter", + "once_cell", ] [[package]] -name = "lock_api" -version = "0.4.6" +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "figment" +version = "0.10.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" dependencies = [ - "scopeguard", + "atomic", + "pear", + "serde", + "toml 0.8.19", + "uncased", + "version_check", ] [[package]] -name = "log" -version = "0.4.17" +name = "filetime" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", ] [[package]] -name = "matches" -version = "0.1.9" +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "h2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.7.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "headers" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "humantime-serde" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" +dependencies = [ + "humantime", + "serde", +] + +[[package]] +name = "hyper" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-proxy2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9043b7b23fb0bc4a1c7014c27b50a4fc42cc76206f71d34fc0dfe5b28ddc3faf" +dependencies = [ + "bytes", + "futures-util", + "headers", + "http", + "hyper", + "hyper-rustls 0.26.0", + "hyper-util", + "pin-project-lite", + "rustls-native-certs 0.7.3", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", + "webpki", +] + +[[package]] +name = "hyper-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "log", + "rustls 0.22.4", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls 0.23.20", + "rustls-native-certs 0.8.1", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.1", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-socks2" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c227614c208f7e7c2e040526912604a1a957fe467c9c2f5b06c5d032337dab" +dependencies = [ + "async-socks5", + "http", + "hyper", + "hyper-util", + "thiserror 1.0.69", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "inkwell" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40fb405537710d51f6bdbc8471365ddd4cd6d3a3c3ad6e0c8291691031ba94b2" +dependencies = [ + "either", + "inkwell_internals", + "libc", + "llvm-sys 150.2.1", + "llvm-sys 160.2.1", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "inkwell_internals" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd28cfd4cfba665d47d31c08a6ba637eed16770abca2eccbbc3ca831fef1e44" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "inlinable_string" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" + +[[package]] +name = "insta" +version = "1.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "jwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" +dependencies = [ + "crossbeam", + "rayon", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lexical" +version = "7.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ed980ff02623721dc334b9105150b66d0e1f246a92ab5a2eca0335d54c48f6" +dependencies = [ + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a82e24bf537fd24c177ffbbdc6ebcc8d54732c35b50a3f28cc3f4e4c949a0b3" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + +[[package]] +name = "llvm-sys" +version = "150.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa55828745895d37233756307ded95a235b058aeb89cd12717ec7c3912089ee9" +dependencies = [ + "cc", + "lazy_static", + "libc", + "regex", + "semver", +] + +[[package]] +name = "llvm-sys" +version = "160.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e73861901245d32e1c3d8b35b639cf100859b4cd0c9da56fe0273040acbb3ea4" +dependencies = [ + "cc", + "lazy_static", + "libc", + "regex", + "semver", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "matrixmultiply" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "nalgebra" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ndarray" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" +dependencies = [ + "approx", + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "rawpointer", + "serde", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom_locate" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3" +dependencies = [ + "bytecount", + "memchr", + "nom", +] + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", + "serde", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror 1.0.69", +] + +[[package]] +name = "opentelemetry" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror 1.0.69", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae312d58eaa90a82d2e627fd86e075cf5230b3f11794e2ed74199ebbe572d4fd" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "lazy_static", + "once_cell", + "opentelemetry 0.23.0", + "ordered-float", + "percent-encoding", + "rand", + "thiserror 1.0.69", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry 0.24.0", + "percent-encoding", + "rand", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_pipe" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbjson" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e6349fa080353f4a597daffd05cb81572a9c031a6d4fff7e504947496fcc68" +dependencies = [ + "base64 0.21.7", + "serde", +] + +[[package]] +name = "pbjson-build" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" +dependencies = [ + "heck 0.5.0", + "itertools 0.13.0", + "prost", + "prost-types", +] + +[[package]] +name = "pbjson-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54e5e7bfb1652f95bc361d76f3c780d8e526b134b85417e774166ee941f0887" +dependencies = [ + "bytes", + "chrono", + "pbjson", + "pbjson-build", + "prost", + "prost-build", + "serde", +] + +[[package]] +name = "pear" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" +dependencies = [ + "inlinable_string", + "pear_codegen", + "yansi", +] + +[[package]] +name = "pear_codegen" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.7.0", +] + +[[package]] +name = "pin-project" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.90", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "version_check", + "yansi", +] + +[[package]] +name = "prost" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +dependencies = [ + "heck 0.5.0", + "itertools 0.13.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.90", + "tempfile", +] [[package]] -name = "memchr" -version = "2.4.1" +name = "prost-derive" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +dependencies = [ + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.90", +] [[package]] -name = "memoffset" -version = "0.6.5" +name = "prost-types" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "autocfg", + "prost", ] [[package]] -name = "metadeps" -version = "1.1.2" +name = "qcs" +version = "0.25.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b122901b3a675fac8cecf68dcb2f0d3036193bc861d1ac0e1c337f7d5254c2" +checksum = "b401c0e3c37df76d4c94f2e05881522f3d68032443b65e8e182b9e30f1f7dc0f" dependencies = [ - "error-chain", - "pkg-config", - "toml 0.2.1", + "async-trait", + "built", + "cached", + "derive_builder 0.12.0", + "enum-as-inner", + "futures", + "indexmap 2.7.0", + "itertools 0.11.0", + "lazy_static", + "ndarray", + "num", + "opentelemetry 0.23.0", + "opentelemetry_sdk 0.23.0", + "pbjson-types", + "qcs-api-client-common", + "qcs-api-client-grpc", + "qcs-api-client-openapi", + "quil-rs", + "reqwest", + "rmp-serde", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "toml 0.7.8", + "tonic", + "uuid", + "zmq", ] [[package]] -name = "mime" -version = "0.3.16" +name = "qcs-api-client-common" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6d644a6f79c9a1405fa49b5ab5010e5e5ab56241400b947497cc9a7fcd1d8845" +dependencies = [ + "async-trait", + "backoff", + "base64 0.22.1", + "derive_builder 0.20.2", + "figment", + "futures", + "home", + "http", + "jsonwebtoken", + "reqwest", + "serde", + "shellexpand", + "thiserror 1.0.69", + "time", + "tokio", + "toml 0.8.19", +] [[package]] -name = "mime_guess" -version = "2.0.4" +name = "qcs-api-client-grpc" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "058b263256ee7420d28cef9175ab8de7bf41676e0d75071d39c0a1ab145c8cad" dependencies = [ - "mime", - "unicase", + "backoff", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-proxy2", + "hyper-socks2", + "hyper-util", + "opentelemetry_sdk 0.24.1", + "pbjson", + "pbjson-build", + "pbjson-types", + "prost", + "prost-build", + "qcs-api-client-common", + "serde", + "thiserror 1.0.69", + "tokio", + "tonic", + "tonic-build", + "tower 0.4.13", + "tower-http", + "tracing-opentelemetry", + "url", + "uuid", ] [[package]] -name = "minimal-lexical" -version = "0.2.1" +name = "qcs-api-client-openapi" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "d423a8a5acf80ff2dbae5b4d00cfb5ce9526160767fa24ea733000767d97db4f" +dependencies = [ + "http", + "qcs-api-client-common", + "reqwest", + "serde", + "serde_json", + "tokio", + "url", +] [[package]] -name = "mio" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +name = "qcs-sdk-qir" +version = "0.1.0" dependencies = [ - "libc", + "clap", + "either", + "env_logger", + "eyre", + "inkwell", + "insta", + "lazy_static", "log", - "miow", - "ntapi", - "wasi 0.11.0+wasi-snapshot-preview1", - "winapi", + "num-complex", + "qcs", + "quil-rs", + "regex", + "serde", + "serde_json", + "thiserror 2.0.8", + "trycmd", ] [[package]] -name = "miow" -version = "0.3.7" +name = "quil-rs" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +checksum = "21be9557b4f9654d19bec061c0ceeac3286db84fcea6da8b77a4e57756f8887e" dependencies = [ - "winapi", + "approx", + "indexmap 2.7.0", + "itertools 0.12.1", + "lexical", + "ndarray", + "nom", + "nom_locate", + "num-complex", + "once_cell", + "petgraph", + "regex", + "serde", + "statrs", + "strum", + "thiserror 1.0.69", ] [[package]] -name = "native-tls" -version = "0.2.10" +name = "quinn" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ - "lazy_static", + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.20", + "socket2", + "thiserror 2.0.8", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom", + "rand", + "ring", + "rustc-hash", + "rustls 0.23.20", + "rustls-pki-types", + "slab", + "thiserror 2.0.8", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +dependencies = [ + "cfg_aliases", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", ] [[package]] -name = "nom" -version = "7.1.1" +name = "quote" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "memchr", - "minimal-lexical", + "proc-macro2", ] [[package]] -name = "normalize-line-endings" -version = "0.3.0" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] [[package]] -name = "ntapi" -version = "0.3.7" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "winapi", + "ppv-lite86", + "rand_core", ] [[package]] -name = "num" -version = "0.4.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", + "getrandom", ] [[package]] -name = "num-bigint" +name = "rand_distr" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ - "autocfg", - "num-integer", "num-traits", + "rand", ] [[package]] -name = "num-complex" -version = "0.4.0" +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "num-traits", + "either", + "rayon-core", ] [[package]] -name = "num-integer" -version = "0.1.44" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "autocfg", - "num-traits", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] -name = "num-iter" -version = "0.1.42" +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "bitflags 2.6.0", ] [[package]] -name = "num-rational" -version = "0.4.0" +name = "redox_users" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "autocfg", - "num-bigint", - "num-integer", + "getrandom", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls 0.27.5", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.20", + "rustls-native-certs 0.8.1", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls 0.26.1", + "tokio-socks", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "windows-registry", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", ] [[package]] -name = "num-traits" -version = "0.2.14" +name = "rustc-demangle" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] -name = "num_cpus" -version = "1.13.1" +name = "rustix" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ - "hermit-abi", + "bitflags 2.6.0", + "errno", "libc", + "linux-raw-sys", + "windows-sys 0.59.0", ] [[package]] -name = "once_cell" -version = "1.9.0" +name = "rustls" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] [[package]] -name = "openssl" -version = "0.10.38" +name = "rustls" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", + "log", "once_cell", - "openssl-sys", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "rustls-native-certs" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework 2.11.1", +] [[package]] -name = "openssl-sys" -version = "0.9.72" +name = "rustls-native-certs" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.1.0", ] [[package]] -name = "os_pipe" -version = "1.0.1" +name = "rustls-pemfile" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c92f2b54f081d635c77e7120862d48db8e91f7f21cef23ab1b4fe9971c59f55" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "libc", - "winapi", + "rustls-pki-types", ] [[package]] -name = "os_str_bytes" -version = "6.0.0" +name = "rustls-pki-types" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" dependencies = [ - "memchr", + "web-time", ] [[package]] -name = "parking_lot" -version = "0.12.0" +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "lock_api", - "parking_lot_core", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] -name = "parking_lot_core" -version = "0.9.2" +name = "rustversion" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys", -] +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] -name = "paste" -version = "1.0.7" +name = "ryu" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] -name = "percent-encoding" -version = "2.1.0" +name = "safe_arch" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "6153d6e19b611afde437944fa67bde0193eb913f63e03b2a7d2ab36be32e42f0" +dependencies = [ + "bytemuck", +] [[package]] -name = "pest" -version = "2.1.3" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "ucd-trie", + "winapi-util", ] [[package]] -name = "petgraph" -version = "0.5.1" +name = "schannel" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "fixedbitset", - "indexmap", + "windows-sys 0.59.0", ] [[package]] -name = "pin-project-lite" -version = "0.2.8" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "pin-utils" -version = "0.1.0" +name = "security-framework" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] [[package]] -name = "pkg-config" -version = "0.3.25" +name = "security-framework" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "security-framework-sys" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "core-foundation-sys", + "libc", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "semver" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "serde", ] [[package]] -name = "proc-macro2" -version = "1.0.39" +name = "serde" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ - "unicode-ident", + "serde_derive", ] [[package]] -name = "qcs" -version = "0.3.2" +name = "serde_derive" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d434cd34471431eea0d3c55a7163b0f4cb6c45743414422a247c6006834a8dd" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ - "dirs", - "enum-as-inner", - "futures", - "indexmap", - "lazy_static", - "log", - "num", - "qcs-api", - "quil-rs", - "reqwest", - "rmp-serde", - "serde", - "serde_bytes", - "serde_json", - "thiserror", - "tokio", - "toml 0.5.9", - "uuid", - "zmq", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "qcs-api" -version = "0.0.6" +name = "serde_json" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590d7753e763ac1ea461954fd9b881c687d3b32e8f3c42339cf3fe85542d75cd" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "reqwest", + "itoa", + "memchr", + "ryu", "serde", - "serde_derive", - "serde_json", - "url", ] [[package]] -name = "qcs-sdk-qir" -version = "0.1.0" +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "clap", - "either", - "env_logger", - "eyre", - "inkwell", - "insta", - "lazy_static", - "log", - "num-complex", - "qcs", - "quil-rs", - "regex", "serde", - "serde_json", - "thiserror", - "trycmd", ] [[package]] -name = "quil-rs" -version = "0.12.0" +name = "serde_urlencoded" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8dab267ecfb8d9ca6d5cf69885c05a7dd2b4beec32df520ee9b937f99e08596" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ - "indexmap", - "lexical", - "nom", - "num-complex", - "petgraph", + "form_urlencoded", + "itoa", + "ryu", "serde", - "thiserror", ] [[package]] -name = "quote" -version = "1.0.15" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "proc-macro2", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "rayon" -version = "1.5.1" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", + "lazy_static", ] [[package]] -name = "rayon-core" -version = "1.9.1" +name = "shellexpand" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", + "dirs", ] [[package]] -name = "redox_syscall" -version = "0.2.13" +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simba" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f" dependencies = [ - "bitflags", + "approx", + "num-complex", + "num-traits", + "paste", + "wide", ] [[package]] -name = "redox_users" -version = "0.4.3" +name = "similar" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" + +[[package]] +name = "simple_asn1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ - "getrandom", - "redox_syscall", - "thiserror", + "num-bigint", + "num-traits", + "thiserror 1.0.69", + "time", ] [[package]] -name = "regex" -version = "1.5.4" +name = "slab" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "autocfg", ] [[package]] -name = "regex-syntax" -version = "0.6.25" +name = "smallvec" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "snapbox" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "96dcfc4581e3355d70ac2ee14cfdf81dce3d85c85f1ed9e2c1d3013f53b3436b" dependencies = [ - "winapi", + "anstream", + "anstyle", + "content_inspector", + "dunce", + "filetime", + "libc", + "normalize-line-endings", + "os_pipe", + "similar", + "snapbox-macros", + "tempfile", + "wait-timeout", + "walkdir", + "windows-sys 0.59.0", ] [[package]] -name = "reqwest" -version = "0.11.11" +name = "snapbox-macros" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" +checksum = "16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af" dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-tls", - "ipnet", - "js-sys", - "lazy_static", - "log", - "mime", - "mime_guess", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", + "anstream", ] [[package]] -name = "ring" -version = "0.16.20" +name = "socket2" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ - "cc", "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", + "windows-sys 0.52.0", ] [[package]] -name = "rmp" -version = "0.8.11" +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] -name = "rmp-serde" +name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25786b0d276110195fa3d6f3f31299900cf71dfbd6c28450f3f58a0e7f7a347e" -dependencies = [ - "byteorder", - "rmp", - "serde", -] +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "rustls" -version = "0.20.4" +name = "statrs" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "b35a062dbadac17a42e0fc64c27f419b25d6fae98572eb43c8814c9e873d7721" dependencies = [ - "log", - "ring", - "sct", - "webpki", + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", ] [[package]] -name = "rustls-pemfile" -version = "1.0.0" +name = "strsim" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" -dependencies = [ - "base64", -] +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "ryu" -version = "1.0.10" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "same-file" -version = "1.0.6" +name = "strum" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "winapi-util", + "strum_macros", ] [[package]] -name = "schannel" -version = "0.1.19" +name = "strum_macros" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "lazy_static", - "winapi", + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.90", ] [[package]] -name = "scopeguard" -version = "1.1.0" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] -name = "sct" -version = "0.7.0" +name = "syn" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "ring", - "untrusted", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "security-framework" -version = "2.6.1" +name = "syn" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "security-framework-sys" -version = "2.6.1" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ - "core-foundation-sys", - "libc", + "futures-core", ] [[package]] -name = "semver" -version = "0.11.0" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "semver-parser", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "semver-parser" -version = "0.10.2" +name = "system-deps" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ - "pest", + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.19", + "version-compare", ] [[package]] -name = "serde" -version = "1.0.137" +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tempfile" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ - "serde_derive", + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] -name = "serde_bytes" -version = "0.11.6" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "serde", + "thiserror-impl 1.0.69", ] [[package]] -name = "serde_derive" -version = "1.0.137" +name = "thiserror" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl 2.0.8", ] [[package]] -name = "serde_json" -version = "1.0.81" +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "itoa", - "ryu", - "serde", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "thiserror-impl" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "serde_yaml" -version = "0.8.23" +name = "thread_local" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "indexmap", - "ryu", - "serde", - "yaml-rust", + "cfg-if", + "once_cell", ] [[package]] -name = "shlex" -version = "1.1.0" +name = "time" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] [[package]] -name = "similar" -version = "2.1.0" +name = "time-core" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] -name = "slab" -version = "0.4.6" +name = "time-macros" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +dependencies = [ + "num-conv", + "time-core", +] [[package]] -name = "smallvec" -version = "1.8.0" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] [[package]] -name = "snapbox" -version = "0.2.9" +name = "tinyvec" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f212b806d6f56d19838e36a0aaa7e79a0bc9ca177e873fb87651ad92f983e2" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ - "concolor", - "content_inspector", - "dunce", - "filetime", - "normalize-line-endings", - "os_pipe", - "similar", - "snapbox-macros", - "tempfile", - "wait-timeout", - "walkdir", - "yansi", + "tinyvec_macros", ] [[package]] -name = "snapbox-macros" -version = "0.2.1" +name = "tinyvec_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01dea7e04cbb27ef4c86e9922184608185f7cd95c1763bc30d727cda4a5e930" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] -name = "socket2" -version = "0.4.4" +name = "tokio" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ + "backtrace", + "bytes", "libc", - "winapi", + "mio", + "parking_lot", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", ] [[package]] -name = "spin" -version = "0.5.2" +name = "tokio-macros" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "tokio-rustls" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] [[package]] -name = "strsim" -version = "0.10.0" +name = "tokio-rustls" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +dependencies = [ + "rustls 0.23.20", + "tokio", +] [[package]] -name = "syn" -version = "1.0.96" +name = "tokio-socks" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf" +checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "either", + "futures-util", + "thiserror 1.0.69", + "tokio", ] [[package]] -name = "tempfile" -version = "3.3.0" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "futures-core", + "pin-project-lite", + "tokio", ] [[package]] -name = "termcolor" -version = "1.1.2" +name = "tokio-util" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ - "winapi-util", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", ] [[package]] -name = "terminal_size" -version = "0.1.17" +name = "toml" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ - "libc", - "winapi", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", ] [[package]] -name = "textwrap" -version = "0.15.0" +name = "toml" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", +] [[package]] -name = "thiserror" -version = "1.0.31" +name = "toml_datetime" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ - "thiserror-impl", + "serde", ] [[package]] -name = "thiserror-impl" -version = "1.0.31" +name = "toml_edit" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "proc-macro2", - "quote", - "syn", + "indexmap 2.7.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", ] [[package]] -name = "tinyvec" -version = "1.5.1" +name = "toml_edit" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "tinyvec_macros", + "indexmap 2.7.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.20", ] [[package]] -name = "tinyvec_macros" -version = "0.1.0" +name = "tonic" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "rustls-native-certs 0.8.1", + "rustls-pemfile", + "socket2", + "tokio", + "tokio-rustls 0.26.1", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] [[package]] -name = "tokio" -version = "1.19.2" +name = "tonic-build" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "bytes", - "libc", - "memchr", - "mio", - "once_cell", - "pin-project-lite", - "socket2", - "winapi", + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.90", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "native-tls", + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", ] [[package]] -name = "tokio-rustls" -version = "0.23.3" +name = "tower" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ - "rustls", - "tokio", - "webpki", + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", ] [[package]] -name = "tokio-util" -version = "0.7.1" +name = "tower-http" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ + "bitflags 2.6.0", "bytes", - "futures-core", - "futures-sink", + "http", + "http-body", + "http-body-util", "pin-project-lite", - "tokio", + "tower-layer", + "tower-service", "tracing", ] [[package]] -name = "toml" -version = "0.2.1" +name = "tower-layer" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736b60249cb25337bc196faa43ee12c705e426f3d55c214d73a4e7be06f92cb4" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] -name = "toml" -version = "0.5.9" +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "serde", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "toml_edit" -version = "0.13.4" +name = "tracing-attributes" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744e9ed5b352340aa47ce033716991b5589e23781acb97cad37d4ea70560f55b" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ - "combine", - "indexmap", - "itertools", - "kstring", - "serde", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] -name = "tower-service" -version = "0.3.1" +name = "tracing-core" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] [[package]] -name = "tracing" -version = "0.1.33" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b9fa4360528139bc96100c160b7ae879f5567f49f1782b0b02035b0358ebf3" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", + "log", + "once_cell", "tracing-core", ] [[package]] -name = "tracing-attributes" -version = "0.1.20" +name = "tracing-opentelemetry" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" dependencies = [ - "proc-macro2", - "quote", - "syn", + "js-sys", + "once_cell", + "opentelemetry 0.24.0", + "opentelemetry_sdk 0.24.1", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", ] [[package]] -name = "tracing-core" -version = "0.1.24" +name = "tracing-subscriber" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90442985ee2f57c9e1b548ee72ae842f4a9a20e3f417cc38dbc5dc684d9bb4ee" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "lazy_static", + "sharded-slab", + "thread_local", + "tracing-core", ] [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trycmd" -version = "0.13.3" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c21f68a540a24b162ca101e3f7f4ce3c8458f594f28080018f29da23ad8567b" +checksum = "656073a28690a4b8dfd578d1df087826cf8fa53c8161dbd90130d092570a21e1" dependencies = [ + "anstream", + "automod", "glob", "humantime", "humantime-serde", @@ -1931,83 +3741,97 @@ dependencies = [ "serde", "shlex", "snapbox", - "toml_edit", + "toml_edit 0.22.22", ] [[package]] -name = "ucd-trie" -version = "0.1.3" +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] -name = "unicase" -version = "2.6.0" +name = "uncased" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" dependencies = [ "version_check", ] [[package]] -name = "unicode-bidi" -version = "0.3.7" +name = "unicase" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" - -[[package]] -name = "unicode-normalization" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" -dependencies = [ - "tinyvec", -] +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.2.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "uuid" -version = "1.1.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", ] [[package]] -name = "vcpkg" -version = "0.2.15" +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[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 = "wait-timeout" @@ -2020,31 +3844,23 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2053,46 +3869,47 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", - "lazy_static", "log", "proc-macro2", "quote", - "syn", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2100,28 +3917,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -2129,9 +3956,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ "ring", "untrusted", @@ -2139,139 +3966,368 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ - "webpki", + "rustls-pki-types", ] [[package]] -name = "winapi" -version = "0.3.9" +name = "wide" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "58e6db2670d2be78525979e9a5f9c69d296fd7d670549fe9ebf70f8708cb5019" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "bytemuck", + "safe_arch", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "winapi-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows-registry" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "winapi", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] [[package]] name = "windows-sys" -version = "0.34.0" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + [[package]] name = "windows_aarch64_msvc" -version = "0.34.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.34.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.34.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.34.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] -name = "winreg" -version = "0.10.1" +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ - "winapi", + "memchr", ] [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "winnow" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ - "linked-hash-map", + "memchr", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zeromq-src" -version = "0.1.10+4.3.2" +version = "0.2.6+4.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc120b771270365d5ed0dfb4baf1005f2243ae1ae83703265cb3504070f4160b" +dependencies = [ + "cc", + "dircpy", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9133d366817fcffe22e4356043ba187ae122ec5db63d7ce73d1e6a18efa2f1" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "cmake", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] name = "zmq" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad98a7a617d608cd9e1127147f630d24af07c7cd95ba1533246d96cbdd76c66" +checksum = "dd3091dd571fb84a9b3e5e5c6a807d186c411c812c8618786c3c30e5349234e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", - "log", "zmq-sys", ] [[package]] name = "zmq-sys" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d33a2c51dde24d5b451a2ed4b488266df221a5eaee2ee519933dc46b9a9b3648" +checksum = "8e8351dc72494b4d7f5652a681c33634063bbad58046c1689e75270908fdc864" dependencies = [ "libc", - "metadeps", + "system-deps", "zeromq-src", ] diff --git a/Cargo.toml b/Cargo.toml index 5984f58..c1cb28b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,35 +11,33 @@ license = "Apache-2.0" [dependencies] either = "1.6.1" -env_logger = "0.9.0" +env_logger = "0.11.0" eyre = "0.6.6" lazy_static = "1.4.0" log = "0.4.14" num-complex = "0.4.0" -quil-rs = "0.12.0" # Part of public API, major versions are breaking changes. +quil-rs = "0.29.2" # Part of public API, major versions are breaking changes. regex = "1.5.4" -clap = { version = "3.1.6", features = ["derive"], optional = true } +clap = { version = "4.5", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } serde = { version = "1", features = ["derive"], optional = true } -thiserror = "1" -qcs = { version = "0.3.2", optional = true } +thiserror = "2" +qcs = { version = "0.25.6", optional = true } [dependencies.inkwell] -version = "0.1.0" -git = "https://github.com/TheDan64/inkwell" -branch = "master" +version = "0.5.0" features = ["target-x86"] [dev-dependencies] -insta = "1.8.0" -trycmd = "0.13.3" +insta = { version = "1.8.0", features = ["json"] } +trycmd = "0.15.8" [features] cli = ["clap"] -output = ["qcs"] # Enables the `output` module -default = ["serde_support", "cli", "output"] -llvm12-0 = ["inkwell/llvm12-0"] -llvm13-0 = ["inkwell/llvm13-0"] +output = ["qcs"] # Enables the `output` module +default = ["serde_support", "cli", "output", "llvm16-0"] +llvm15-0 = ["inkwell/llvm15-0"] +llvm16-0 = ["inkwell/llvm16-0"] serde_support = ["serde", "serde_json"] [[bin]] diff --git a/Makefile.toml b/Makefile.toml index 0c3bfe0..c0f2556 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -1,8 +1,9 @@ [env] RUST_BACKTRACE = 0 -LLVM_FEATURE = { value = "llvm13-0", condition = { env_not_set = [ +LLVM_FEATURE = { value = "llvm16-0", condition = { env_not_set = [ "LLVM_FEATURE", ] } } +LLVM_SYS_160_PREFIX = { value = "/opt/homebrew/opt/llvm@16", condition = { platforms = ["mac"] } } PROFILE = { value = "dev", condition = { env_not_set = ["PROFILE"] } } NO_C_SDK_BUILD = { value = "0", condition = { env_not_set = [ "NO_C_SDK_BUILD", diff --git a/scripts/release/setup.sh b/scripts/release/setup.sh index f772b96..6f35486 100755 --- a/scripts/release/setup.sh +++ b/scripts/release/setup.sh @@ -3,7 +3,7 @@ set -xeo pipefail # set defaults for dynamic CI variables when local/testing C_SDK_VERSION="${C_SDK_VERSION:-v0.1.1}" -LLVM_VERSION="${LLVM_VERSION:-13}" +LLVM_VERSION="${LLVM_VERSION:-16}" LLVM_FULL_VERSION="${LLVM_FULL_VERSION:-0.1}" TESTING_TAG="${TESTING_TAG:-v0.0.0-local}" TAG=${TAG:-$TESTING_TAG} diff --git a/src/context/target.rs b/src/context/target.rs index 1934cc8..33bfd41 100644 --- a/src/context/target.rs +++ b/src/context/target.rs @@ -14,7 +14,7 @@ use std::str::FromStr; -#[derive(Debug)] +#[derive(Debug, Clone)] #[allow(clippy::module_name_repetitions)] pub enum ExecutionTarget { Qpu(String), diff --git a/src/context/types.rs b/src/context/types.rs index 617bd22..03e9402 100644 --- a/src/context/types.rs +++ b/src/context/types.rs @@ -20,7 +20,7 @@ use inkwell::{ }; fn build_string_type(context: &Context) -> PointerType { - context.i8_type().ptr_type(AddressSpace::Generic) + context.ptr_type(AddressSpace::default()) } const TYPE_NAME_EXECUTION_RESULT: &str = "ExecutionResult"; diff --git a/src/context/values.rs b/src/context/values.rs index c71b006..654406b 100644 --- a/src/context/values.rs +++ b/src/context/values.rs @@ -14,7 +14,7 @@ use eyre::{eyre, Result}; use inkwell::{ - builder::Builder, + builder::{Builder, BuilderError}, context::Context, module::{Linkage, Module}, types::BasicMetadataTypeEnum, @@ -28,7 +28,7 @@ use crate::transform::PARAMETER_MEMORY_REGION_NAME; use super::{target::ExecutionTarget, types::Types}; fn build_executable_from_quil_function<'ctx>( - _context: &'ctx Context, + context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, types: &Types<'ctx>, @@ -39,8 +39,7 @@ fn build_executable_from_quil_function<'ctx>( existing_function } else { let string_type = types.string(); - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); let executable_from_quil_type = executable_pointer_type .fn_type(&[BasicMetadataTypeEnum::PointerType(string_type)], false); @@ -53,7 +52,7 @@ fn build_executable_from_quil_function<'ctx>( } fn build_execute_on_qpu_function<'ctx>( - _context: &'ctx Context, + context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, types: &Types<'ctx>, @@ -64,11 +63,9 @@ fn build_execute_on_qpu_function<'ctx>( existing_function } else { let string_type = types.string(); - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); - let execution_result_type = types.execution_result(module); - let execution_result_pointer_type = execution_result_type.ptr_type(AddressSpace::Generic); + let execution_result_pointer_type = context.ptr_type(AddressSpace::default()); let execute_on_qpu_type = execution_result_pointer_type.fn_type( &[ BasicMetadataTypeEnum::PointerType(executable_pointer_type), @@ -85,21 +82,19 @@ fn build_execute_on_qpu_function<'ctx>( } fn build_execute_on_qvm_function<'ctx>( - _context: &'ctx Context, + context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_EXECUTE_ON_QVM: &str = "execute_on_qvm"; if let Some(existing_function) = module.get_function(FN_NAME_EXECUTE_ON_QVM) { existing_function } else { - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); - let execution_result_type = types.execution_result(module); - let execution_result_pointer_type = execution_result_type.ptr_type(AddressSpace::Generic); + let execution_result_pointer_type = context.ptr_type(AddressSpace::default()); let execute_on_qvm_type = execution_result_pointer_type.fn_type( &[BasicMetadataTypeEnum::PointerType(executable_pointer_type)], false, @@ -116,15 +111,14 @@ fn build_free_executable_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_FREE_EXECUTABLE: &str = "free_executable"; if let Some(existing_function) = module.get_function(FN_NAME_FREE_EXECUTABLE) { existing_function } else { - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); let free_executable_type = context.void_type().fn_type( &[BasicMetadataTypeEnum::PointerType(executable_pointer_type)], @@ -142,15 +136,14 @@ fn build_free_execution_result_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_FREE_EXECUTION_RESULT: &str = "free_execution_result"; if let Some(existing_function) = module.get_function(FN_NAME_FREE_EXECUTION_RESULT) { existing_function } else { - let execution_result_type = types.execution_result(module); - let execution_result_pointer_type = execution_result_type.ptr_type(AddressSpace::Generic); + let execution_result_pointer_type = context.ptr_type(AddressSpace::default()); let free_execution_result_type = context.void_type().fn_type( &[BasicMetadataTypeEnum::PointerType( execution_result_pointer_type, @@ -169,7 +162,7 @@ fn build_create_executable_cache_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_CREATE_EXECUTABLE_CACHE: &str = "create_executable_cache"; @@ -178,9 +171,8 @@ fn build_create_executable_cache_function<'ctx>( } else { module.add_function( FN_NAME_CREATE_EXECUTABLE_CACHE, - types - .executable_cache(module) - .ptr_type(AddressSpace::Generic) + context + .ptr_type(AddressSpace::default()) .fn_type(&[context.i32_type().into()], false), None, ) @@ -202,9 +194,8 @@ fn build_add_executable_cache_item_function<'ctx>( FN_NAME_ADD_EXECUTABLE_CACHE_ITEM, context.void_type().fn_type( &[ - types - .executable_cache(module) - .ptr_type(AddressSpace::Generic) + context + .ptr_type(AddressSpace::default()) .into(), context.i32_type().into(), types.string().into(), @@ -220,7 +211,7 @@ fn build_read_from_executable_cache_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_READ_FROM_EXECTUABLE_CACHE: &str = "read_from_executable_cache"; @@ -229,14 +220,12 @@ fn build_read_from_executable_cache_function<'ctx>( } else { module.add_function( FN_NAME_READ_FROM_EXECTUABLE_CACHE, - types - .executable(module) - .ptr_type(AddressSpace::Generic) + context + .ptr_type(AddressSpace::default()) .fn_type( &[ - types - .executable_cache(module) - .ptr_type(AddressSpace::Generic) + context + .ptr_type(AddressSpace::default()) .into(), context.i32_type().into(), ], @@ -251,7 +240,7 @@ fn build_free_executable_cache_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_FREE_EXECUTABLE_CACHE: &str = "free_executable_cache"; @@ -261,9 +250,8 @@ fn build_free_executable_cache_function<'ctx>( module.add_function( FN_NAME_FREE_EXECUTABLE_CACHE, context.void_type().fn_type( - &[types - .executable_cache(module) - .ptr_type(AddressSpace::Generic) + &[context + .ptr_type(AddressSpace::default()) .into()], false, ), @@ -276,15 +264,14 @@ fn build_get_readout_bit_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_GET_READOUT_BIT: &str = "get_readout_bit"; if let Some(existing_function) = module.get_function(FN_NAME_GET_READOUT_BIT) { existing_function } else { - let execution_result_type = types.execution_result(module); - let execution_result_pointer_type = execution_result_type.ptr_type(AddressSpace::Generic); + let execution_result_pointer_type = context.ptr_type(AddressSpace::default()); let i64_type = context.i64_type(); @@ -316,8 +303,7 @@ fn build_set_param_function<'ctx>( if let Some(existing_function) = module.get_function(FN_NAME_SET_PARAM) { existing_function } else { - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); let string_type = types.string(); let name_type = string_type; @@ -342,15 +328,14 @@ fn build_panic_on_failure_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_PANIC_ON_FAILURE: &str = "panic_on_failure"; if let Some(existing_function) = module.get_function(FN_NAME_PANIC_ON_FAILURE) { existing_function } else { - let execution_result_type = types.execution_result(module); - let execution_result_pointer_type = execution_result_type.ptr_type(AddressSpace::Generic); + let execution_result_pointer_type = context.ptr_type(AddressSpace::default()); let panic_type = context.void_type().fn_type( &[BasicMetadataTypeEnum::PointerType( @@ -372,7 +357,7 @@ fn build_parameter_memory_region_name<'ctx>( builder: &Builder<'ctx>, module: &Module<'ctx>, types: &Types<'ctx>, -) -> PointerValue<'ctx> { +) -> Result, BuilderError> { const GLOBAL_NAME_PARAM_MEM_REGION: &str = "parameter_memory_region_name"; let global_string = match module.get_global(GLOBAL_NAME_PARAM_MEM_REGION) { @@ -380,11 +365,12 @@ fn build_parameter_memory_region_name<'ctx>( None => unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 - builder.build_global_string(PARAMETER_MEMORY_REGION_NAME, GLOBAL_NAME_PARAM_MEM_REGION) + builder + .build_global_string(PARAMETER_MEMORY_REGION_NAME, GLOBAL_NAME_PARAM_MEM_REGION)? }, }; - global_string.as_pointer_value().const_cast(types.string()) + Ok(global_string.as_pointer_value().const_cast(types.string())) } fn build_quantum_processor_id<'ctx>( @@ -393,7 +379,7 @@ fn build_quantum_processor_id<'ctx>( module: &Module<'ctx>, types: &Types<'ctx>, target: &ExecutionTarget, -) -> Option> { +) -> Result>, BuilderError> { if let ExecutionTarget::Qpu(quantum_processor_id) = target { const GLOBAL_NAME_QPU_ID: &str = "quantum_processor_id"; let global_string = match module.get_global(GLOBAL_NAME_QPU_ID) { @@ -401,13 +387,15 @@ fn build_quantum_processor_id<'ctx>( None => unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 - builder.build_global_string(quantum_processor_id, GLOBAL_NAME_QPU_ID) + builder.build_global_string(quantum_processor_id, GLOBAL_NAME_QPU_ID)? }, }; - Some(global_string.as_pointer_value().const_cast(types.string())) + Ok(Some( + global_string.as_pointer_value().const_cast(types.string()), + )) } else { - None + Ok(None) } } @@ -415,15 +403,14 @@ fn build_wrap_in_shots_function<'ctx>( context: &'ctx Context, _builder: &Builder<'ctx>, module: &Module<'ctx>, - types: &Types<'ctx>, + _types: &Types<'ctx>, ) -> FunctionValue<'ctx> { const FN_NAME_WRAP_IN_SHOTS: &str = "wrap_in_shots"; if let Some(existing_function) = module.get_function(FN_NAME_WRAP_IN_SHOTS) { existing_function } else { - let executable_type = types.executable(module); - let executable_pointer_type = executable_type.ptr_type(AddressSpace::Generic); + let executable_pointer_type = context.ptr_type(AddressSpace::default()); let i32_type = context.i32_type(); let wrap_in_shots_type = context.void_type().fn_type( @@ -503,9 +490,8 @@ impl<'ctx> Values<'ctx> { .or_else(|| { Some( module.add_global( - types - .executable_cache(module) - .ptr_type(AddressSpace::Generic), + context + .ptr_type(AddressSpace::default()), None, "executable_cache", ), @@ -515,9 +501,8 @@ impl<'ctx> Values<'ctx> { executable_cache.set_linkage(Linkage::Private); executable_cache.set_externally_initialized(false); - let initializer = types - .executable_cache(module) - .ptr_type(AddressSpace::Generic) + let initializer = context + .ptr_type(AddressSpace::default()) .const_zero(); executable_cache.set_initializer(&initializer); @@ -541,10 +526,10 @@ impl<'ctx> Values<'ctx> { ), parameter_memory_region_name: build_parameter_memory_region_name( context, builder, module, types, - ), + )?, quantum_processor_id: build_quantum_processor_id( context, builder, module, types, target, - ), + )?, set_param_function: build_set_param_function(context, builder, module, types), wrap_in_shots_function: build_wrap_in_shots_function(context, builder, module, types), diff --git a/src/interop/call.rs b/src/interop/call.rs index 1df83ed..e33b72a 100644 --- a/src/interop/call.rs +++ b/src/interop/call.rs @@ -22,7 +22,7 @@ use inkwell::{ use crate::context::QCSCompilerContext; #[allow(dead_code)] -pub(crate) fn printf<'ctx>(context: &mut QCSCompilerContext<'ctx>, string: PointerValue) { +pub(crate) fn printf(context: &mut QCSCompilerContext<'_>, string: PointerValue) -> Result<()> { let string_type = context.types.string(); let printf_type = context .base_context @@ -37,7 +37,8 @@ pub(crate) fn printf<'ctx>(context: &mut QCSCompilerContext<'ctx>, string: Point string.const_cast(string_type), )], "", - ); + )?; + Ok(()) } pub(crate) struct Executable<'ctx>(pub(crate) PointerValue<'ctx>); @@ -54,7 +55,7 @@ pub(crate) fn executable_from_quil<'ctx>( quil.const_cast(string_type), )], "", - ); + )?; Ok(Executable( executable_call_site_value .try_as_basic_value() @@ -81,7 +82,7 @@ pub(crate) fn execute_on_qpu<'ctx>( .into(), ], "", - ); + )?; Ok(ExecutionResult( execution_result @@ -100,7 +101,7 @@ pub(crate) fn execute_on_qvm<'ctx>( context.values.execute_on_qvm_function(), &[executable.0.into()], "", - ); + )?; Ok(ExecutionResult( execution_result @@ -115,23 +116,25 @@ pub(crate) fn execute_on_qvm<'ctx>( pub(crate) fn free_executable<'ctx>( context: &mut QCSCompilerContext<'ctx>, executable: &Executable<'ctx>, -) { +) -> Result<()> { context.builder.build_call( context.values.free_executable_function(), &[executable.0.into()], "", - ); + )?; + Ok(()) } pub(crate) fn free_execution_result<'ctx>( context: &mut QCSCompilerContext<'ctx>, execution_result: &ExecutionResult<'ctx>, -) { +) -> Result<()> { context.builder.build_call( context.values.free_execution_result_function(), &[execution_result.0.into()], "", - ); + )?; + Ok(()) } /// Insert a call which retrieves the executable stored at a given index in the cache. @@ -141,13 +144,13 @@ pub(crate) fn get_executable<'ctx>( ) -> Result> { let cache_pointer = context .builder - .build_load(context.values.executable_cache().as_pointer_value(), ""); + .build_load(index.get_type(), context.values.executable_cache().as_pointer_value(), "")?; let call_site_value = context.builder.build_call( context.values.read_from_executable_cache(), &[cache_pointer.into(), index.into()], "", - ); + )?; Ok(Executable( call_site_value @@ -163,12 +166,13 @@ pub(crate) fn get_executable<'ctx>( pub(crate) fn panic_on_execution_result_failure<'ctx>( context: &mut QCSCompilerContext<'ctx>, execution_result: &ExecutionResult<'ctx>, -) { +) -> Result<()> { context.builder.build_call( context.values.panic_on_failure_function(), &[execution_result.0.into()], "", - ); + )?; + Ok(()) } pub(crate) fn get_readout_bit<'ctx>( @@ -189,7 +193,7 @@ pub(crate) fn get_readout_bit<'ctx>( .into(), ], "", - ); + )?; Ok(result .try_as_basic_value() @@ -203,28 +207,32 @@ pub(crate) fn set_param<'ctx>( executable: &Executable<'ctx>, index: u64, value: FloatValue<'ctx>, -) { - context.builder.build_call( - context.values.set_param_function(), - &[ - BasicMetadataValueEnum::PointerValue(executable.0), - context.values.parameter_memory_region_name().into(), - context - .base_context - .i32_type() - .const_int(index, false) - .into(), - value.into(), - ], - "", - ); +) -> Result<()> { + context + .builder + .build_call( + context.values.set_param_function(), + &[ + BasicMetadataValueEnum::PointerValue(executable.0), + context.values.parameter_memory_region_name().into(), + context + .base_context + .i32_type() + .const_int(index, false) + .into(), + value.into(), + ], + "", + ) + .map(|_| ()) + .map_err(eyre::Report::from) } pub(crate) fn wrap_in_shots<'ctx>( context: &mut QCSCompilerContext<'ctx>, executable: &Executable<'ctx>, shots: u64, -) { +) -> Result<()> { context.builder.build_call( context.values.wrap_in_shots_function(), &[ @@ -236,5 +244,6 @@ pub(crate) fn wrap_in_shots<'ctx>( .into(), ], "", - ); + )?; + Ok(()) } diff --git a/src/interop/entrypoint.rs b/src/interop/entrypoint.rs index 407fc6f..bce7aee 100644 --- a/src/interop/entrypoint.rs +++ b/src/interop/entrypoint.rs @@ -25,7 +25,7 @@ use crate::context::QCSCompilerContext; pub(crate) fn get_entry_function<'ctx>(module: &Module<'ctx>) -> Option> { let ns = "QuantumApplication"; let method = "Run"; - let entrypoint_name = format!("{}__{}__body", ns, method); + let entrypoint_name = format!("{ns}__{method}__body"); get_entrypoint_function(module).or_else(|| module.get_function(&entrypoint_name)) } @@ -58,10 +58,10 @@ pub(crate) fn add_main_entrypoint(context: &mut QCSCompilerContext) -> Result<() let qir_entrypoint = get_entry_function(&context.module) .ok_or_else(|| eyre!("QIR expected entrypoint not found"))?; - context.builder.build_call(qir_entrypoint, &[], ""); + context.builder.build_call(qir_entrypoint, &[], "")?; context .builder - .build_return(Some(&context.base_context.i32_type().const_int(0, false))); + .build_return(Some(&context.base_context.i32_type().const_int(0, false)))?; Ok(()) } diff --git a/src/interop/instruction.rs b/src/interop/instruction.rs index b940bcb..690b54a 100644 --- a/src/interop/instruction.rs +++ b/src/interop/instruction.rs @@ -19,7 +19,7 @@ use either::Either; use eyre::{eyre, Result, WrapErr}; use inkwell::{ basic_block::BasicBlock, - types::AnyTypeEnum, + types::{AnyType, AnyTypeEnum}, values::{ BasicValue, BasicValueEnum, FloatValue, InstructionOpcode, InstructionValue, IntValue, PhiValue, PointerValue, @@ -69,7 +69,7 @@ pub(crate) fn get_qis_function_arguments<'ctx>( .ok_or_else(|| eyre!("expected a first operand in Call instruction"))?; if let Either::Left(BasicValueEnum::PointerValue(ptr_value)) = target { if let AnyTypeEnum::StructType(struct_type) = - ptr_value.get_type().get_element_type() + ptr_value.get_type().as_any_type_enum() { let type_name = struct_type .get_name() @@ -178,15 +178,11 @@ pub(crate) fn replace_conditional_branch_target( &instruction, ); - let original_then_block = if let Some(Either::Right(target)) = instruction.get_operand(2) { - target - } else { + let Some(Either::Right(original_then_block)) = instruction.get_operand(2) else { return Err(eyre!("expected basic block target for branch")); }; - let original_else_block = if let Some(Either::Right(target)) = instruction.get_operand(1) { - target - } else { + let Some(Either::Right(original_else_block)) = instruction.get_operand(1) else { return Err(eyre!("expected basic block target for branch")); }; @@ -195,18 +191,15 @@ pub(crate) fn replace_conditional_branch_target( replace_else.unwrap_or(&original_else_block), ); - let comparison = if let Some(Either::Left(BasicValueEnum::IntValue(comparison))) = - instruction.get_operand(0) - { - comparison - } else { + let Some(Either::Left(BasicValueEnum::IntValue(comparison))) = instruction.get_operand(0) + else { return Err(eyre!("expected integer comparison for branch")); }; let new_instruction = context .builder - .build_conditional_branch(comparison, *then_block, *else_block); + .build_conditional_branch(comparison, *then_block, *else_block)?; instruction.replace_all_uses_with(&new_instruction); instruction.remove_from_basic_block(); Ok(()) @@ -267,7 +260,7 @@ pub(crate) fn replace_phi_clause( // TODO: derive the type from the actual instruction instead of assuming i64 let new_instruction = context .builder - .build_phi(context.base_context.i64_type(), ""); + .build_phi(context.base_context.i64_type(), "")?; new_instruction.add_incoming(new_incoming_ref.as_slice()); instruction.replace_all_uses_with(&new_instruction); @@ -278,10 +271,10 @@ pub(crate) fn replace_phi_clause( /// Print each of the operands of an instruction in debug format to stdout on its own labeled line. #[allow(dead_code)] pub(crate) fn print_all_operands(instruction: InstructionValue) { - println!("instruction: {:?}", instruction); + println!("instruction: {instruction:?}"); for i in 0..instruction.get_num_operands() { - println!("operand {}: {:?}", i, instruction.get_operand(i)); + println!("operand {i}: {:?}", instruction.get_operand(i)); } } @@ -302,7 +295,7 @@ pub(crate) fn replace_phi_clauses( context, current_instruction .try_into() - .map_err(|_| eyre!("Expected phi instruction"))?, + .map_err(|()| eyre!("Expected phi instruction"))?, old_basic_block, new_basic_block, reverse_match, diff --git a/src/main.rs b/src/main.rs index e49a69c..5b004e3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,7 +37,6 @@ enum QcsQirCli { llvm_bitcode_path: PathBuf, - #[clap(parse(from_os_str))] bitcode_out: Option, #[clap(long)] @@ -69,7 +68,7 @@ enum QcsQirCli { }, } -#[derive(Debug)] +#[derive(Debug, Copy, Clone)] enum QirFormat { ShotCount, Unitary, diff --git a/src/output/debug.rs b/src/output/debug.rs index a23ac3b..dc0d4d8 100644 --- a/src/output/debug.rs +++ b/src/output/debug.rs @@ -44,17 +44,17 @@ impl OutputFormat for DebugOutputFormat { let shot_id = shot_idx + 1; match recorded_output { RecordedOutput::ShotStart => { - output.push(format!("[shot:{} start]", shot_id)); + output.push(format!("[shot:{shot_id} start]")); } RecordedOutput::ShotEnd => { - output.push(format!("[shot:{} end]", shot_id)); + output.push(format!("[shot:{shot_id} end]")); break; } RecordedOutput::ResultReadoutOffset(index) => { #[allow(clippy::cast_possible_truncation)] let index = *index as usize; if let Some(result) = shot.get(index) { - output.push(format!("[shot:{} result {}]", shot_id, result)); + output.push(format!("[shot:{shot_id} result {result}]")); } else { return Err(Error::NoShotDataAtIndex(shot_id, index)); } @@ -63,21 +63,20 @@ impl OutputFormat for DebugOutputFormat { | RecordedOutput::IntegerReadoutOffset(..) | RecordedOutput::DoubleReadoutOffset(..) => { return Err(Error::UnimplementedRecordType(format!( - "{:?}", - recorded_output + "{recorded_output:?}", ))) } RecordedOutput::TupleStart => { - output.push(format!("[shot:{} tuple_start]", shot_id)); + output.push(format!("[shot:{shot_id} tuple_start]")); } RecordedOutput::TupleEnd => { - output.push(format!("[shot:{} tuple_end]", shot_id)); + output.push(format!("[shot:{shot_id} tuple_end]")); } RecordedOutput::ArrayStart => { - output.push(format!("[shot:{} array_start]", shot_id)); + output.push(format!("[shot:{shot_id} array_start]")); } RecordedOutput::ArrayEnd => { - output.push(format!("[shot:{} array_end]", shot_id)); + output.push(format!("[shot:{shot_id} array_end]")); } } } @@ -85,7 +84,7 @@ impl OutputFormat for DebugOutputFormat { Ok(Self(output)) } RegisterData::Complex32(..) | RegisterData::F64(..) | RegisterData::I16(..) => { - Err(Error::UnimplementedResultType(format!("{:?}", result))) + Err(Error::UnimplementedResultType(format!("{result:?}"))) } } } @@ -99,20 +98,7 @@ impl std::fmt::Display for DebugOutputFormat { #[test] fn test_execution_result_debug_output() { - let execution_result = - RegisterData::I8(vec![vec![1, 2, 3], vec![10, 20, 30], vec![11, 22, 33]]); - let mapping = [ - RecordedOutput::ShotStart, - RecordedOutput::ResultReadoutOffset(0), - RecordedOutput::ResultReadoutOffset(1), - RecordedOutput::ResultReadoutOffset(2), - RecordedOutput::ShotEnd, - ]; - - let output = DebugOutputFormat::try_new(&execution_result, &mapping).unwrap(); - assert_eq!(output.0.len(), 15); - - const EXPECTED_OUTPUT: &str = r#" + const EXPECTED_OUTPUT: &str = r" [shot:1 start] [shot:1 result 1] [shot:1 result 2] @@ -128,12 +114,25 @@ fn test_execution_result_debug_output() { [shot:3 result 22] [shot:3 result 33] [shot:3 end] -"#; +"; + + let execution_result = + RegisterData::I8(vec![vec![1, 2, 3], vec![10, 20, 30], vec![11, 22, 33]]); + let mapping = [ + RecordedOutput::ShotStart, + RecordedOutput::ResultReadoutOffset(0), + RecordedOutput::ResultReadoutOffset(1), + RecordedOutput::ResultReadoutOffset(2), + RecordedOutput::ShotEnd, + ]; + + let output = DebugOutputFormat::try_new(&execution_result, &mapping).unwrap(); + assert_eq!(output.0.len(), 15); assert_eq!( super::try_format::(&execution_result, &mapping).unwrap(), EXPECTED_OUTPUT.trim() - ) + ); } #[test] @@ -151,8 +150,8 @@ fn test_out_of_range_debug_output() { let try_output = DebugOutputFormat::try_new(&execution_result, &mapping); if let Some(Error::NoShotDataAtIndex(shot_id, index)) = try_output.err() { assert_eq!(shot_id, 2); - assert_eq!(index, 2) + assert_eq!(index, 2); } else { - assert!(false); + panic!(); } } diff --git a/src/transform/shot_count_block/pattern.rs b/src/transform/shot_count_block/pattern.rs index e1df17f..2787b60 100644 --- a/src/transform/shot_count_block/pattern.rs +++ b/src/transform/shot_count_block/pattern.rs @@ -87,11 +87,11 @@ pub(crate) struct ShotCountPatternMatchContext<'ctx> { /// A list of instructions to remove from the program (for substitution with Quil) pub(crate) instructions_to_remove: Vec>, - /// The terminating instruction to append to the BasicBlock in place of a conditional + /// The terminating instruction to append to the `BasicBlock` in place of a conditional /// branch on shot count pub(crate) next_basic_block: Option>, - /// Mapping of (read_result *Result index)->(ro memory region index) + /// Mapping of `(read_result *Result index)->(ro memory region index)` pub(crate) read_result_mapping: HashMap, /// Pairings of (readout buffer index/offset) with the instruction which stores that readout value. @@ -110,7 +110,7 @@ impl<'ctx> ShotCountPatternMatchContext<'ctx> { /// return that information; otherwise, return `None` indicating that the pattern was not matched. pub(crate) fn get_program_data(&self) -> Option<(&quil_rs::Program, u64)> { if let Some(shots) = self.shot_count { - if self.quil_program.to_instructions(false).is_empty() { + if self.quil_program.body_instructions().next().is_none() { None } else { Some((&self.quil_program, shots)) @@ -152,7 +152,7 @@ impl<'ctx> ShotCountPatternMatchContext<'ctx> { if pattern_context.initial_instruction.is_none() { // Check if we've found it in this instruction. If not, continue on to the next instruction until we do find it. // FIXME: ensure we encounter this first (i.e. the pattern must be matched in order) - if let Some((pattern_instruction, _)) = + if let Some((pattern_instruction, ())) = shot_count_loop_start(&mut pattern_context, instruction) { debug!("matched shot count start: {:?}", instruction); @@ -162,19 +162,19 @@ impl<'ctx> ShotCountPatternMatchContext<'ctx> { next_instruction = pattern_instruction; continue; } - } else if let Some((pattern_instruction, _)) = + } else if let Some((pattern_instruction, ())) = quantum_instruction(context, &mut pattern_context, instruction)? { debug!("matched quantum instruction: {:?}", instruction); next_instruction = pattern_instruction; continue; - } else if let Some((pattern_instruction, _)) = + } else if let Some((pattern_instruction, ())) = rt_record_instruction(context, &mut pattern_context, instruction)? { debug!("matched rt_record instruction: {:?}", instruction); next_instruction = pattern_instruction; continue; - } else if let Some((_, _)) = + } else if let Some((_, ())) = shot_count_loop_end(context, &mut pattern_context, instruction)? { debug!("matched shot count end: {:?}", instruction); @@ -228,8 +228,8 @@ impl<'ctx> ShotCountPatternMatchContext<'ctx> { /// /// If matched, this function returns the variable name assigned by the `phi` operand, for use in identifying the end of the loop, /// as well as the number of shots. -pub(crate) fn shot_count_loop_start<'a, 'ctx>( - pattern_context: &'a mut ShotCountPatternMatchContext<'ctx>, +pub(crate) fn shot_count_loop_start<'ctx>( + pattern_context: &mut ShotCountPatternMatchContext<'ctx>, instruction: InstructionValue<'ctx>, ) -> PatternResult<'ctx, ()> { match instruction.get_opcode() { @@ -265,9 +265,9 @@ pub(crate) fn shot_count_loop_start<'a, 'ctx>( /// These three instructions must immediately follow one another as depicted here. /// /// If matched, this function returns the shot count. -pub(crate) fn shot_count_loop_end<'a, 'ctx>( +pub(crate) fn shot_count_loop_end<'ctx>( context: &QCSCompilerContext, - pattern_context: &'a mut ShotCountPatternMatchContext<'ctx>, + pattern_context: &mut ShotCountPatternMatchContext<'ctx>, instruction: InstructionValue<'ctx>, ) -> Result> { match instruction.get_opcode() { @@ -499,7 +499,7 @@ pub(crate) fn rt_record_instruction<'ctx>( match record_type { "result" => { let arguments = get_qis_function_arguments(context, instruction)?; - if let Some(OperationArgument::Result(result_index)) = arguments.get(0) + if let Some(OperationArgument::Result(result_index)) = arguments.first() { let next_ro_index = pattern_context.read_result_mapping.len() as u64; @@ -779,7 +779,7 @@ pub(crate) fn quantum_instruction<'ctx>( } } else if function_name == "__quantum__qis__read_result__body" { let arguments = get_qis_function_arguments(context, instruction)?; - if let Some(OperationArgument::Result(result_index)) = arguments.get(0) { + if let Some(OperationArgument::Result(result_index)) = arguments.first() { let ro_index = pattern_context.read_result_mapping.get(result_index).ok_or_else(|| eyre!("Result index {} was never the target of a measurement operation", result_index))?; pattern_context .readout_instruction_mapping diff --git a/src/transform/shot_count_block/qir.rs b/src/transform/shot_count_block/qir.rs index 8fb66e6..b3a1d72 100644 --- a/src/transform/shot_count_block/qir.rs +++ b/src/transform/shot_count_block/qir.rs @@ -18,7 +18,10 @@ use inkwell::{ values::{AnyValue, FunctionValue, InstructionValue}, }; use log::{debug, info}; -use quil_rs::instruction::Vector; +use quil_rs::{ + instruction::{PragmaArgument, Vector}, + quil::Quil, +}; use crate::interop::{ call, @@ -69,7 +72,7 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( .const_int(context.quil_programs.len() as u64, false) .into()], "", - ) + )? .try_as_basic_value() .left() .ok_or_else(|| eyre!("create_executable_cache does not have a return value"))? @@ -78,17 +81,17 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( context.builder.build_store( context.values.executable_cache().as_pointer_value(), actual_executable_cache, - ); + )?; for index in 0..context.quil_programs.len() { - let program_text = context.quil_programs[index].to_string(true); + let program_text = context.quil_programs[index].to_quil()?; let quil_program_global_string = unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 context .builder - .build_global_string(&program_text, "quil_program") + .build_global_string(&program_text, "quil_program")? }; context.builder.build_call( @@ -106,10 +109,10 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( .into(), ], "", - ); + )?; } - context.builder.build_return(None); + context.builder.build_return(None)?; Ok(populate_executable_array_function) } @@ -135,7 +138,7 @@ pub(crate) fn transpile_module(context: &mut QCSCompilerContext) -> Result<()> { None => context.builder.position_at_end(entry_basic_block), }; - context.builder.build_call(populate_function, &[], ""); + context.builder.build_call(populate_function, &[], "")?; Ok(()) } @@ -181,7 +184,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( debug!( "inserting quil program with {} shots: {}", shots, - program.to_string(true) + program.to_quil_or_debug() ); let mut program = program.clone(); @@ -212,7 +215,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( if pattern_context.use_active_reset { // Prepend a reset to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Reset( quil_rs::instruction::Reset { qubit: None }, @@ -225,12 +228,12 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( if let Some(rewiring_pragma) = &context.options.rewiring_pragma { // Prepend a pragma to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Pragma( quil_rs::instruction::Pragma { name: String::from("INITIAL_REWIRING"), - arguments: vec![format!("\"{}\"", rewiring_pragma.clone())], + arguments: vec![PragmaArgument::Identifier(rewiring_pragma.clone())], data: None, }, )); @@ -260,23 +263,23 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( .const_int(quil_program_index as u64, false), )? } else { - let program_text = program.to_string(true); + let program_text = program.to_quil()?; let quil_program_global_string = unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 context .builder - .build_global_string(&program_text, "quil_program") + .build_global_string(&program_text, "quil_program")? }; // Insert the shared library calls to send this program for execution call::executable_from_quil(context, quil_program_global_string.as_pointer_value())? }; - call::wrap_in_shots(context, &executable, shots); + call::wrap_in_shots(context, &executable, shots)?; for (index, value) in pattern_context.parameters.iter().enumerate() { - call::set_param(context, &executable, index as u64, *value); + call::set_param(context, &executable, index as u64, *value)?; } let execution_result = match &context.target { @@ -288,11 +291,11 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( } }; - call::panic_on_execution_result_failure(context, &execution_result); + call::panic_on_execution_result_failure(context, &execution_result)?; // After execution we branch into the reduction block, which is everything left over after the // quantum instructions are removed. - context.builder.build_unconditional_branch(basic_block); + context.builder.build_unconditional_branch(basic_block)?; // We place our cursor right after the beginning of the loop, which should come before any reduction instructions. context.builder.position_at( @@ -334,10 +337,10 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( .wrap_err("expected the basic block to have a conditional 'else' target")?; context.builder.position_at_end(cleanup_basic_block); - call::free_execution_result(context, &execution_result); + call::free_execution_result(context, &execution_result)?; context .builder - .build_unconditional_branch(original_next_block); + .build_unconditional_branch(original_next_block)?; replace_conditional_branch_target( context, diff --git a/src/transform/shot_count_block/quil.rs b/src/transform/shot_count_block/quil.rs index 653fbe8..ff6f385 100644 --- a/src/transform/shot_count_block/quil.rs +++ b/src/transform/shot_count_block/quil.rs @@ -17,8 +17,9 @@ // executing those quil instructions. use eyre::{eyre, Result}; use inkwell::{basic_block::BasicBlock, values::FunctionValue}; -use quil_rs::instruction::Vector; +use quil_rs::instruction::{PragmaArgument, Vector}; +use quil_rs::quil::Quil; #[cfg(feature = "serde_support")] use serde::{ser::SerializeStruct, Serialize, Serializer}; @@ -44,8 +45,12 @@ impl Serialize for ProgramOutput { where S: Serializer, { + use serde::ser::Error; let mut output = serializer.serialize_struct("ProgramOutput", 3)?; - output.serialize_field("program", &self.program.to_string(true))?; + output.serialize_field( + "program", + &self.program.to_quil().map_err(S::Error::custom)?, + )?; output.serialize_field("shot_count", &self.shot_count)?; output.serialize_field("recorded_output", &self.recorded_output)?; output.end() @@ -145,7 +150,7 @@ pub(crate) fn build_quil_program<'ctx, 'p: 'ctx>( if pattern_context.use_active_reset { // Prepend a reset to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Reset( quil_rs::instruction::Reset { qubit: None }, @@ -158,12 +163,12 @@ pub(crate) fn build_quil_program<'ctx, 'p: 'ctx>( if let Some(rewiring_pragma) = &context.options.rewiring_pragma { // Prepend a pragma to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Pragma( quil_rs::instruction::Pragma { name: String::from("INITIAL_REWIRING"), - arguments: vec![format!("\"{}\"", rewiring_pragma.clone())], + arguments: vec![PragmaArgument::Identifier(rewiring_pragma.clone())], data: None, }, )); @@ -216,7 +221,7 @@ mod test { .unwrap(); let result = transpile_module(&mut context).expect("transpilation failed"); - insta::assert_snapshot!(result.program.to_string(true)); + insta::assert_snapshot!(result.program.to_quil_or_debug()); } }; } diff --git a/src/transform/unitary/pattern.rs b/src/transform/unitary/pattern.rs index c28c471..9399b2d 100644 --- a/src/transform/unitary/pattern.rs +++ b/src/transform/unitary/pattern.rs @@ -64,7 +64,7 @@ pub(crate) struct UnitaryPatternMatchContext<'ctx> { /// A list of instructions to remove from the program (for substitution with Quil) pub(crate) instructions_to_remove: Vec>, - /// Mapping of (read_result *Result index)->(ro memory region index) + /// Mapping of `(read_result *Result index)->(ro memory region index)` pub(crate) read_result_mapping: HashMap, /// Pairings of (readout buffer index/offset) with the instruction which stores that readout value. @@ -99,12 +99,12 @@ impl<'ctx> UnitaryPatternMatchContext<'ctx> { while let Some(instruction) = next_instruction { // If we haven't yet found the loop start... - if let Some((pattern_instruction, _)) = + if let Some((pattern_instruction, ())) = quantum_instruction(context, &mut pattern_context, instruction)? { debug!("matched quantum instruction: {:?}", instruction); next_instruction = pattern_instruction; - } else if let Some((pattern_instruction, _)) = + } else if let Some((pattern_instruction, ())) = rt_record_instruction(context, &mut pattern_context, instruction)? { debug!("matched rt_record instruction: {:?}", instruction); @@ -125,7 +125,7 @@ impl<'ctx> UnitaryPatternMatchContext<'ctx> { /// If the program contains any executable instructions (gates, pulses, etc) return that /// information; otherwise, return `None` indicating that the pattern was not matched. pub(crate) fn get_program_data(&self) -> Option<&quil_rs::Program> { - if self.quil_program.to_instructions(false).is_empty() { + if self.quil_program.body_instructions().next().is_none() { None } else { Some(&self.quil_program) @@ -268,7 +268,7 @@ pub(crate) fn rt_record_instruction<'ctx>( match record_type { "result" => { let arguments = get_qis_function_arguments(context, instruction)?; - if let Some(OperationArgument::Result(result_index)) = arguments.get(0) + if let Some(OperationArgument::Result(result_index)) = arguments.first() { let next_ro_index = pattern_context.read_result_mapping.len() as u64; @@ -548,7 +548,7 @@ pub(crate) fn quantum_instruction<'ctx>( } } else if function_name == "__quantum__qis__read_result__body" { let arguments = get_qis_function_arguments(context, instruction)?; - if let Some(OperationArgument::Result(result_index)) = arguments.get(0) { + if let Some(OperationArgument::Result(result_index)) = arguments.first() { let ro_index = pattern_context.read_result_mapping.get(result_index).ok_or_else(|| eyre!("Result index {} was never the target of a measurement operation", result_index))?; pattern_context .readout_instruction_mapping diff --git a/src/transform/unitary/qir.rs b/src/transform/unitary/qir.rs index bfd30de..91f25f8 100644 --- a/src/transform/unitary/qir.rs +++ b/src/transform/unitary/qir.rs @@ -18,7 +18,10 @@ use inkwell::{ values::{FunctionValue, InstructionOpcode}, }; use log::{debug, info}; -use quil_rs::instruction::Vector; +use quil_rs::{ + instruction::{PragmaArgument, Vector}, + quil::Quil, +}; use crate::interop::{ call, entrypoint::get_entry_function, instruction::remove_instructions_in_safe_order, @@ -64,7 +67,7 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( .const_int(context.quil_programs.len() as u64, false) .into()], "", - ) + )? .try_as_basic_value() .left() .ok_or_else(|| eyre!("create_executable_cache does not have a return value"))? @@ -73,17 +76,17 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( context.builder.build_store( context.values.executable_cache().as_pointer_value(), actual_executable_cache, - ); + )?; for index in 0..context.quil_programs.len() { - let program_text = context.quil_programs[index].to_string(true); + let program_text = context.quil_programs[index].to_quil()?; let quil_program_global_string = unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 context .builder - .build_global_string(&program_text, "quil_program") + .build_global_string(&program_text, "quil_program")? }; context.builder.build_call( @@ -101,10 +104,10 @@ pub(crate) fn build_populate_executable_cache_function<'ctx>( .into(), ], "", - ); + )?; } - context.builder.build_return(None); + context.builder.build_return(None)?; Ok(populate_executable_array_function) } @@ -130,7 +133,7 @@ pub(crate) fn transpile_module(context: &mut QCSCompilerContext) -> Result<()> { None => context.builder.position_at_end(entry_basic_block), }; - context.builder.build_call(populate_function, &[], ""); + context.builder.build_call(populate_function, &[], "")?; Ok(()) } @@ -166,7 +169,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( basic_block: BasicBlock, ) -> eyre::Result<()> { if let Some(program) = pattern_context.get_program_data() { - debug!("inserting quil program: {}", program.to_string(true)); + debug!("inserting quil program: {}", program.to_quil_or_debug()); let mut program = program.clone(); @@ -196,7 +199,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( if pattern_context.use_active_reset { // Prepend a reset to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Reset( quil_rs::instruction::Reset { qubit: None }, @@ -209,12 +212,12 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( if let Some(rewiring_pragma) = &context.options.rewiring_pragma { // Prepend a pragma to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Pragma( quil_rs::instruction::Pragma { name: String::from("INITIAL_REWIRING"), - arguments: vec![format!("\"{}\"", rewiring_pragma.clone())], + arguments: vec![PragmaArgument::Identifier(rewiring_pragma.clone())], data: None, }, )); @@ -244,13 +247,13 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( .const_int(quil_program_index as u64, false), )? } else { - let program_text = program.to_string(true); + let program_text = program.to_quil()?; let quil_program_global_string = unsafe { // NOTE: this segfaults if the builder is not already positioned within a basic block // see https://github.com/TheDan64/inkwell/issues/32 context .builder - .build_global_string(&program_text, "quil_program") + .build_global_string(&program_text, "quil_program")? }; // Insert the shared library calls to send this program for execution @@ -258,7 +261,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( }; for (index, value) in pattern_context.parameters.iter().enumerate() { - call::set_param(context, &executable, index as u64, *value); + call::set_param(context, &executable, index as u64, *value)?; } let execution_result = match &context.target { @@ -270,7 +273,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( } }; - call::panic_on_execution_result_failure(context, &execution_result); + call::panic_on_execution_result_failure(context, &execution_result)?; let cleanup_basic_block = context.base_context.insert_basic_block_after( basic_block, @@ -280,11 +283,11 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( context.builder.position_at_end(execution_basic_block); context .builder - .build_unconditional_branch(cleanup_basic_block); + .build_unconditional_branch(cleanup_basic_block)?; context.builder.position_at_end(cleanup_basic_block); - call::free_execution_result(context, &execution_result); - context.builder.build_return(None); + call::free_execution_result(context, &execution_result)?; + context.builder.build_return(None)?; let entry_function = get_entry_function(&context.module) .ok_or_else(|| eyre::eyre!("no entry function found in module"))?; @@ -303,7 +306,7 @@ pub(crate) fn insert_quil_program<'ctx, 'p: 'ctx>( context .builder - .build_unconditional_branch(execution_basic_block); + .build_unconditional_branch(execution_basic_block)?; if last_entry_block_instruction.get_opcode() == InstructionOpcode::Return { last_entry_block_instruction.remove_from_basic_block(); diff --git a/src/transform/unitary/quil.rs b/src/transform/unitary/quil.rs index a63cfc9..da3770f 100644 --- a/src/transform/unitary/quil.rs +++ b/src/transform/unitary/quil.rs @@ -21,7 +21,10 @@ use eyre::{eyre, Result}; use inkwell::types::AnyType; use inkwell::{basic_block::BasicBlock, values::FunctionValue}; -use quil_rs::instruction::Vector; +use quil_rs::{ + instruction::{PragmaArgument, Vector}, + quil::Quil, +}; #[cfg(feature = "serde_support")] use serde::{ser::SerializeStruct, Serialize, Serializer}; @@ -49,8 +52,12 @@ impl Serialize for ProgramOutput { where S: Serializer, { + use serde::ser::Error; let mut output = serializer.serialize_struct("ProgramOutput", 3)?; - output.serialize_field("program", &self.program.to_string(true))?; + output.serialize_field( + "program", + &self.program.to_quil().map_err(S::Error::custom)?, + )?; output.serialize_field("recorded_output", &self.recorded_output)?; output.end() } @@ -95,6 +102,7 @@ pub(crate) fn transpile_function<'ctx>( #[test] fn validates_unitary_ret_void() { use crate::transform::unitary::quil::transpile_module; + use crate::context::context::ContextOptions; let context = inkwell::context::Context::create(); let path = "tests/fixtures/programs/unitary/non_void_terminator.bc"; @@ -103,7 +111,7 @@ fn validates_unitary_ret_void() { &context, &data, crate::ExecutionTarget::Qvm, - Default::default(), + ContextOptions::default(), ) .unwrap(); @@ -116,7 +124,7 @@ fn validates_unitary_ret_void() { &context, &data, crate::ExecutionTarget::Qvm, - Default::default(), + ContextOptions::default(), ) .unwrap(); @@ -169,7 +177,7 @@ pub(crate) fn build_quil_program<'ctx, 'p: 'ctx>( if pattern_context.use_active_reset { // Prepend a reset to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Reset( quil_rs::instruction::Reset { qubit: None }, @@ -182,12 +190,12 @@ pub(crate) fn build_quil_program<'ctx, 'p: 'ctx>( if let Some(rewiring_pragma) = &context.options.rewiring_pragma { // Prepend a pragma to the program via copy - let instructions = program.to_instructions(true); + let instructions = program.to_instructions(); let mut new_program = quil_rs::program::Program::new(); new_program.add_instruction(quil_rs::instruction::Instruction::Pragma( quil_rs::instruction::Pragma { name: String::from("INITIAL_REWIRING"), - arguments: vec![format!("\"{}\"", rewiring_pragma.clone())], + arguments: vec![PragmaArgument::Identifier(rewiring_pragma.clone())], data: None, }, )); @@ -236,7 +244,7 @@ mod test { .unwrap(); let result = transpile_module(&mut context).expect("transpilation failed"); - insta::assert_snapshot!(result.program.to_string(true)); + insta::assert_snapshot!(result.program.to_quil_or_debug()); } }; } diff --git a/tests/public_lib_api.rs b/tests/public_lib_api.rs index dd7961c..969dc2b 100644 --- a/tests/public_lib_api.rs +++ b/tests/public_lib_api.rs @@ -5,13 +5,14 @@ use qcs_sdk_qir::{ output::{self, DebugOutputFormat}, transpile_qir_to_quil, }; +use quil_rs::quil::Quil; #[test] fn transpile_qir_to_quil_bell_state() { let data = read("tests/fixtures/programs/bell_state.bc").unwrap(); let output = transpile_qir_to_quil(&data).unwrap(); - insta::assert_snapshot!(output.program.to_string(true)); - insta::assert_display_snapshot!(output.shot_count); + insta::assert_snapshot!(output.program.to_quil_or_debug()); + insta::assert_snapshot!(output.shot_count); } #[test]