From 3c2274f1e7d193eff884f5ce68b15d2bf76d95a9 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Thu, 20 Aug 2026 11:46:38 +0200 Subject: [PATCH 1/5] feat: removed debugger visualizer + tests --- Cargo.toml | 21 +------ debug_metadata/README.md | 111 --------------------------------- debug_metadata/smallvec.natvis | 35 ----------- src/lib.rs | 5 -- tests/debugger_visualizer.rs | 70 --------------------- 5 files changed, 2 insertions(+), 240 deletions(-) delete mode 100644 debug_metadata/README.md delete mode 100644 debug_metadata/smallvec.natvis delete mode 100644 tests/debugger_visualizer.rs diff --git a/Cargo.toml b/Cargo.toml index cb786f8..445f288 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ keywords = ["small", "vec", "vector", "stack", "no_std"] categories = ["data-structures"] readme = "README.md" documentation = "https://docs.rs/smallvec/" -include = ["Cargo.toml", "LICENSE-MIT", "LICENSE-APACHE", "README.md", "src/**/*.rs", "debug_metadata/*.natvis"] +include = ["Cargo.toml", "LICENSE-MIT", "LICENSE-APACHE", "README.md", "src/**/*.rs"] [features] const_generics = [] @@ -23,10 +23,6 @@ drain_filter = [] drain_keep_rest = ["drain_filter"] impl_bincode = ["bincode", "unty"] -# UNSTABLE FEATURES (requires Rust nightly) -# Enable to use the #[debugger_visualizer] attribute. -debugger_visualizer = [] - [dependencies] serde = { version = "1", optional = true, default-features = false } malloc_size_of = { version = "0.1", optional = true, default-features = false } @@ -36,20 +32,7 @@ unty = { version = "0.0.4", optional = true, default-features = false } [dev-dependencies] bincode1 = { package = "bincode", version = "1.0.1" } -debugger_test = "0.1.0" -debugger_test_parser = "0.1.0" [package.metadata.docs.rs] all-features = true -rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"] - -[[test]] -name = "debugger_visualizer" -path = "tests/debugger_visualizer.rs" -required-features = ["debugger_visualizer"] -# Do not run these tests by default. These tests need to -# be run with the additional rustc flag `--test-threads=1` -# since each test causes a debugger to attach to the current -# test process. If multiple debuggers try to attach at the same -# time, the test will fail. -test = false +rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"] \ No newline at end of file diff --git a/debug_metadata/README.md b/debug_metadata/README.md deleted file mode 100644 index 9a5596b..0000000 --- a/debug_metadata/README.md +++ /dev/null @@ -1,111 +0,0 @@ -## Debugger Visualizers - -Many languages and debuggers enable developers to control how a type is -displayed in a debugger. These are called "debugger visualizations" or "debugger -views". - -The Windows debuggers (WinDbg\CDB) support defining custom debugger visualizations using -the `Natvis` framework. To use Natvis, developers write XML documents using the natvis -schema that describe how debugger types should be displayed with the `.natvis` extension. -(See: https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019) -The Natvis files provide patterns which match type names a description of how to display -those types. - -The Natvis schema can be found either online (See: https://code.visualstudio.com/docs/cpp/natvis#_schema) -or locally at `\Xml\Schemas\1033\natvis.xsd`. - -The GNU debugger (GDB) supports defining custom debugger views using Pretty Printers. -Pretty printers are written as python scripts that describe how a type should be displayed -when loaded up in GDB/LLDB. (See: https://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing.html#Pretty-Printing) -The pretty printers provide patterns, which match type names, and for matching -types, describe how to display those types. (For writing a pretty printer, see: https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinter). - -### Embedding Visualizers - -Through the use of the currently unstable `#[debugger_visualizer]` attribute, the `smallvec` -crate can embed debugger visualizers into the crate metadata. - -Currently the two types of visualizers supported are Natvis and Pretty printers. - -For Natvis files, when linking an executable with a crate that includes Natvis files, -the MSVC linker will embed the contents of all Natvis files into the generated `PDB`. - -For pretty printers, the compiler will encode the contents of the pretty printer -in the `.debug_gdb_scripts` section of the `ELF` generated. - -### Testing Visualizers - -The `smallvec` crate supports testing debugger visualizers defined for this crate. The entry point for -these tests are `tests/debugger_visualizer.rs`. These tests are defined using the `debugger_test` and -`debugger_test_parser` crates. The `debugger_test` crate is a proc macro crate which defines a -single proc macro attribute, `#[debugger_test]`. For more detailed information about this crate, -see https://crates.io/crates/debugger_test. The CI pipeline for the `smallvec` crate has been updated -to run the debugger visualizer tests to ensure debugger visualizers do not become broken/stale. - -The `#[debugger_test]` proc macro attribute may only be used on test functions and will run the -function under the debugger specified by the `debugger` meta item. - -This proc macro attribute has 3 required values: - -1. The first required meta item, `debugger`, takes a string value which specifies the debugger to launch. -2. The second required meta item, `commands`, takes a string of new line (`\n`) separated list of debugger -commands to run. -3. The third required meta item, `expected_statements`, takes a string of new line (`\n`) separated list of -statements that must exist in the debugger output. Pattern matching through regular expressions is also -supported by using the `pattern:` prefix for each expected statement. - -#### Example: - -```rust -#[debugger_test( - debugger = "cdb", - commands = "command1\ncommand2\ncommand3", - expected_statements = "statement1\nstatement2\nstatement3")] -fn test() { - -} -``` - -Using a multiline string is also supported, with a single debugger command/expected statement per line: - -```rust -#[debugger_test( - debugger = "cdb", - commands = " -command1 -command2 -command3", - expected_statements = " -statement1 -pattern:statement[0-9]+ -statement3")] -fn test() { - -} -``` - -In the example above, the second expected statement uses pattern matching through a regular expression -by using the `pattern:` prefix. - -#### Testing Locally - -Currently, only Natvis visualizations have been defined for the `smallvec` crate via `debug_metadata/smallvec.natvis`, -which means the `tests/debugger_visualizer.rs` tests need to be run on Windows using the `*-pc-windows-msvc` targets. -To run these tests locally, first ensure the debugging tools for Windows are installed or install them following -the steps listed here, [Debugging Tools for Windows](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/). -Once the debugging tools have been installed, the tests can be run in the same manner as they are in the CI -pipeline. - -#### Note - -When running the debugger visualizer tests, `tests/debugger_visualizer.rs`, they need to be run consecutively -and not in parallel. This can be achieved by passing the flag `--test-threads=1` to rustc. This is due to -how the debugger tests are run. Each test marked with the `#[debugger_test]` attribute launches a debugger -and attaches it to the current test process. If tests are running in parallel, the test will try to attach -a debugger to the current process which may already have a debugger attached causing the test to fail. - -For example: - -``` -cargo test --test debugger_visualizer --features debugger_visualizer -- --test-threads=1 -``` diff --git a/debug_metadata/smallvec.natvis b/debug_metadata/smallvec.natvis deleted file mode 100644 index 8731860..0000000 --- a/debug_metadata/smallvec.natvis +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - {{ len={len()} is_inline={is_inline()} }} - - is_inline() ? $T2 : capacity - len() - data_ptr() - - - len() - data_ptr() - - - - - - - - - {{ len={len()} is_inline={is_inline()} }} - - is_inline() ? $T2 : capacity - len() - - - len() - data_ptr() - - - - \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 8c50301..023751d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -94,11 +94,6 @@ #![cfg_attr(feature = "specialization", allow(incomplete_features))] #![cfg_attr(feature = "specialization", feature(specialization))] #![cfg_attr(feature = "may_dangle", feature(dropck_eyepatch))] -#![cfg_attr( - feature = "debugger_visualizer", - feature(debugger_visualizer), - debugger_visualizer(natvis_file = "../debug_metadata/smallvec.natvis") -)] #![deny(missing_docs)] #[doc(hidden)] diff --git a/tests/debugger_visualizer.rs b/tests/debugger_visualizer.rs deleted file mode 100644 index 8a81e69..0000000 --- a/tests/debugger_visualizer.rs +++ /dev/null @@ -1,70 +0,0 @@ -use debugger_test::debugger_test; -use smallvec::{smallvec, SmallVec}; - -#[inline(never)] -fn __break() {} - -/* Disabled, see https://github.com/servo/rust-smallvec/issues/413 -#[debugger_test( - debugger = "cdb", - commands = r#" -.nvlist -dx sv - -g - -dx sv - -g - -dx sv -"#, - expected_statements = r#" -sv : { len=0x2 is_inline=true } [Type: smallvec::SmallVec >] - [] [Type: smallvec::SmallVec >] - [capacity] : 4 - [len] : 0x2 [Type: unsigned __int64] - [0] : 1 [Type: int] - [1] : 2 [Type: int] - -sv : { len=0x5 is_inline=false } [Type: smallvec::SmallVec >] - [] [Type: smallvec::SmallVec >] - [capacity] : 0x8 [Type: unsigned __int64] - [len] : 0x5 [Type: unsigned __int64] - [0] : 5 [Type: int] - [1] : 2 [Type: int] - [2] : 3 [Type: int] - [3] : 4 [Type: int] - [4] : 5 [Type: int] - -sv : { len=0x5 is_inline=false } [Type: smallvec::SmallVec >] - [] [Type: smallvec::SmallVec >] - [capacity] : 0x8 [Type: unsigned __int64] - [len] : 0x5 [Type: unsigned __int64] - [0] : 2 [Type: int] - [1] : 3 [Type: int] - [2] : 4 [Type: int] - [3] : 5 [Type: int] - [4] : 5 [Type: int] -"# -)] -#[inline(never)] -fn test_debugger_visualizer() { - // This SmallVec can hold up to 4 items on the stack: - let mut sv: SmallVec<[i32; 4]> = smallvec![1, 2]; - __break(); - - // Overfill the SmallVec to move its contents to the heap - for i in 3..6 { - sv.push(i); - } - - // Update the contents of the first value of the SmallVec. - sv[0] = sv[1] + sv[2]; - __break(); - - // Sort the SmallVec in place. - sv.sort(); - __break(); -} -*/ From e093df0b54ecafbcd8104d82b2c18cc7b20b2169 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Thu, 20 Aug 2026 12:06:52 +0200 Subject: [PATCH 2/5] fix: added debug_metadata/ back --- debug_metadata/README.md | 111 +++++++++++++++++++++++++++++++++ debug_metadata/smallvec.natvis | 35 +++++++++++ 2 files changed, 146 insertions(+) create mode 100644 debug_metadata/README.md create mode 100644 debug_metadata/smallvec.natvis diff --git a/debug_metadata/README.md b/debug_metadata/README.md new file mode 100644 index 0000000..acce6a3 --- /dev/null +++ b/debug_metadata/README.md @@ -0,0 +1,111 @@ +## Debugger Visualizers + +Many languages and debuggers enable developers to control how a type is +displayed in a debugger. These are called "debugger visualizations" or "debugger +views". + +The Windows debuggers (WinDbg\CDB) support defining custom debugger visualizations using +the `Natvis` framework. To use Natvis, developers write XML documents using the natvis +schema that describe how debugger types should be displayed with the `.natvis` extension. +(See: https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019) +The Natvis files provide patterns which match type names a description of how to display +those types. + +The Natvis schema can be found either online (See: https://code.visualstudio.com/docs/cpp/natvis#_schema) +or locally at `\Xml\Schemas\1033\natvis.xsd`. + +The GNU debugger (GDB) supports defining custom debugger views using Pretty Printers. +Pretty printers are written as python scripts that describe how a type should be displayed +when loaded up in GDB/LLDB. (See: https://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing.html#Pretty-Printing) +The pretty printers provide patterns, which match type names, and for matching +types, describe how to display those types. (For writing a pretty printer, see: https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinter). + +### Embedding Visualizers + +Through the use of the currently unstable `#[debugger_visualizer]` attribute, the `smallvec` +crate can embed debugger visualizers into the crate metadata. + +Currently the two types of visualizers supported are Natvis and Pretty printers. + +For Natvis files, when linking an executable with a crate that includes Natvis files, +the MSVC linker will embed the contents of all Natvis files into the generated `PDB`. + +For pretty printers, the compiler will encode the contents of the pretty printer +in the `.debug_gdb_scripts` section of the `ELF` generated. + +### Testing Visualizers + +The `smallvec` crate supports testing debugger visualizers defined for this crate. The entry point for +these tests are `tests/debugger_visualizer.rs`. These tests are defined using the `debugger_test` and +`debugger_test_parser` crates. The `debugger_test` crate is a proc macro crate which defines a +single proc macro attribute, `#[debugger_test]`. For more detailed information about this crate, +see https://crates.io/crates/debugger_test. The CI pipeline for the `smallvec` crate has been updated +to run the debugger visualizer tests to ensure debugger visualizers do not become broken/stale. + +The `#[debugger_test]` proc macro attribute may only be used on test functions and will run the +function under the debugger specified by the `debugger` meta item. + +This proc macro attribute has 3 required values: + +1. The first required meta item, `debugger`, takes a string value which specifies the debugger to launch. +2. The second required meta item, `commands`, takes a string of new line (`\n`) separated list of debugger +commands to run. +3. The third required meta item, `expected_statements`, takes a string of new line (`\n`) separated list of +statements that must exist in the debugger output. Pattern matching through regular expressions is also +supported by using the `pattern:` prefix for each expected statement. + +#### Example: + +```rust +#[debugger_test( + debugger = "cdb", + commands = "command1\ncommand2\ncommand3", + expected_statements = "statement1\nstatement2\nstatement3")] +fn test() { + +} +``` + +Using a multiline string is also supported, with a single debugger command/expected statement per line: + +```rust +#[debugger_test( + debugger = "cdb", + commands = " +command1 +command2 +command3", + expected_statements = " +statement1 +pattern:statement[0-9]+ +statement3")] +fn test() { + +} +``` + +In the example above, the second expected statement uses pattern matching through a regular expression +by using the `pattern:` prefix. + +#### Testing Locally + +Currently, only Natvis visualizations have been defined for the `smallvec` crate via `debug_metadata/smallvec.natvis`, +which means the `tests/debugger_visualizer.rs` tests need to be run on Windows using the `*-pc-windows-msvc` targets. +To run these tests locally, first ensure the debugging tools for Windows are installed or install them following +the steps listed here, [Debugging Tools for Windows](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/). +Once the debugging tools have been installed, the tests can be run in the same manner as they are in the CI +pipeline. + +#### Note + +When running the debugger visualizer tests, `tests/debugger_visualizer.rs`, they need to be run consecutively +and not in parallel. This can be achieved by passing the flag `--test-threads=1` to rustc. This is due to +how the debugger tests are run. Each test marked with the `#[debugger_test]` attribute launches a debugger +and attaches it to the current test process. If tests are running in parallel, the test will try to attach +a debugger to the current process which may already have a debugger attached causing the test to fail. + +For example: + +``` +cargo test --test debugger_visualizer --features debugger_visualizer -- --test-threads=1 +``` \ No newline at end of file diff --git a/debug_metadata/smallvec.natvis b/debug_metadata/smallvec.natvis new file mode 100644 index 0000000..8731860 --- /dev/null +++ b/debug_metadata/smallvec.natvis @@ -0,0 +1,35 @@ + + + + + + + {{ len={len()} is_inline={is_inline()} }} + + is_inline() ? $T2 : capacity + len() + data_ptr() + + + len() + data_ptr() + + + + + + + + + {{ len={len()} is_inline={is_inline()} }} + + is_inline() ? $T2 : capacity + len() + + + len() + data_ptr() + + + + \ No newline at end of file From c9241d7c3583e8a4cbb3dcd15572993c578166d6 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Thu, 20 Aug 2026 12:08:59 +0200 Subject: [PATCH 3/5] fix(debug_metadata): removed dir again --- debug_metadata/README.md | 111 --------------------------------- debug_metadata/smallvec.natvis | 35 ----------- 2 files changed, 146 deletions(-) delete mode 100644 debug_metadata/README.md delete mode 100644 debug_metadata/smallvec.natvis diff --git a/debug_metadata/README.md b/debug_metadata/README.md deleted file mode 100644 index acce6a3..0000000 --- a/debug_metadata/README.md +++ /dev/null @@ -1,111 +0,0 @@ -## Debugger Visualizers - -Many languages and debuggers enable developers to control how a type is -displayed in a debugger. These are called "debugger visualizations" or "debugger -views". - -The Windows debuggers (WinDbg\CDB) support defining custom debugger visualizations using -the `Natvis` framework. To use Natvis, developers write XML documents using the natvis -schema that describe how debugger types should be displayed with the `.natvis` extension. -(See: https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019) -The Natvis files provide patterns which match type names a description of how to display -those types. - -The Natvis schema can be found either online (See: https://code.visualstudio.com/docs/cpp/natvis#_schema) -or locally at `\Xml\Schemas\1033\natvis.xsd`. - -The GNU debugger (GDB) supports defining custom debugger views using Pretty Printers. -Pretty printers are written as python scripts that describe how a type should be displayed -when loaded up in GDB/LLDB. (See: https://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing.html#Pretty-Printing) -The pretty printers provide patterns, which match type names, and for matching -types, describe how to display those types. (For writing a pretty printer, see: https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinter). - -### Embedding Visualizers - -Through the use of the currently unstable `#[debugger_visualizer]` attribute, the `smallvec` -crate can embed debugger visualizers into the crate metadata. - -Currently the two types of visualizers supported are Natvis and Pretty printers. - -For Natvis files, when linking an executable with a crate that includes Natvis files, -the MSVC linker will embed the contents of all Natvis files into the generated `PDB`. - -For pretty printers, the compiler will encode the contents of the pretty printer -in the `.debug_gdb_scripts` section of the `ELF` generated. - -### Testing Visualizers - -The `smallvec` crate supports testing debugger visualizers defined for this crate. The entry point for -these tests are `tests/debugger_visualizer.rs`. These tests are defined using the `debugger_test` and -`debugger_test_parser` crates. The `debugger_test` crate is a proc macro crate which defines a -single proc macro attribute, `#[debugger_test]`. For more detailed information about this crate, -see https://crates.io/crates/debugger_test. The CI pipeline for the `smallvec` crate has been updated -to run the debugger visualizer tests to ensure debugger visualizers do not become broken/stale. - -The `#[debugger_test]` proc macro attribute may only be used on test functions and will run the -function under the debugger specified by the `debugger` meta item. - -This proc macro attribute has 3 required values: - -1. The first required meta item, `debugger`, takes a string value which specifies the debugger to launch. -2. The second required meta item, `commands`, takes a string of new line (`\n`) separated list of debugger -commands to run. -3. The third required meta item, `expected_statements`, takes a string of new line (`\n`) separated list of -statements that must exist in the debugger output. Pattern matching through regular expressions is also -supported by using the `pattern:` prefix for each expected statement. - -#### Example: - -```rust -#[debugger_test( - debugger = "cdb", - commands = "command1\ncommand2\ncommand3", - expected_statements = "statement1\nstatement2\nstatement3")] -fn test() { - -} -``` - -Using a multiline string is also supported, with a single debugger command/expected statement per line: - -```rust -#[debugger_test( - debugger = "cdb", - commands = " -command1 -command2 -command3", - expected_statements = " -statement1 -pattern:statement[0-9]+ -statement3")] -fn test() { - -} -``` - -In the example above, the second expected statement uses pattern matching through a regular expression -by using the `pattern:` prefix. - -#### Testing Locally - -Currently, only Natvis visualizations have been defined for the `smallvec` crate via `debug_metadata/smallvec.natvis`, -which means the `tests/debugger_visualizer.rs` tests need to be run on Windows using the `*-pc-windows-msvc` targets. -To run these tests locally, first ensure the debugging tools for Windows are installed or install them following -the steps listed here, [Debugging Tools for Windows](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/). -Once the debugging tools have been installed, the tests can be run in the same manner as they are in the CI -pipeline. - -#### Note - -When running the debugger visualizer tests, `tests/debugger_visualizer.rs`, they need to be run consecutively -and not in parallel. This can be achieved by passing the flag `--test-threads=1` to rustc. This is due to -how the debugger tests are run. Each test marked with the `#[debugger_test]` attribute launches a debugger -and attaches it to the current test process. If tests are running in parallel, the test will try to attach -a debugger to the current process which may already have a debugger attached causing the test to fail. - -For example: - -``` -cargo test --test debugger_visualizer --features debugger_visualizer -- --test-threads=1 -``` \ No newline at end of file diff --git a/debug_metadata/smallvec.natvis b/debug_metadata/smallvec.natvis deleted file mode 100644 index 8731860..0000000 --- a/debug_metadata/smallvec.natvis +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - {{ len={len()} is_inline={is_inline()} }} - - is_inline() ? $T2 : capacity - len() - data_ptr() - - - len() - data_ptr() - - - - - - - - - {{ len={len()} is_inline={is_inline()} }} - - is_inline() ? $T2 : capacity - len() - - - len() - data_ptr() - - - - \ No newline at end of file From 6b9ec0bbb0d6d1bff8af666e8b4b9617641037c2 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Thu, 20 Aug 2026 12:21:33 +0200 Subject: [PATCH 4/5] fix: removed visualizer debugger tests from workflow --- .github/workflows/main.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e2e83f1..5db607b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -60,14 +60,6 @@ jobs: if: matrix.toolchain == 'beta' run: cargo test --verbose --features union - - name: Cargo test w/ debugger_visualizer - if: matrix.toolchain == 'nightly' - run: cargo test --test debugger_visualizer --verbose --features debugger_visualizer -- --test-threads=1 - - - name: Cargo test w/ debugger_visualizer and union - if: matrix.toolchain == 'nightly' - run: cargo test --test debugger_visualizer --verbose --features 'debugger_visualizer,union' -- --test-threads=1 - - name: Cargo test all features if: matrix.toolchain == 'nightly' run: cargo test --verbose --all-features From 9a45924136eec808ba524fa3d72e5360178f0da4 Mon Sep 17 00:00:00 2001 From: Alejandro Vaz Date: Thu, 20 Aug 2026 19:33:29 +0200 Subject: [PATCH 5/5] chore: remove Cargo.lock from .gitignore --- .gitignore | 1 - Cargo.lock | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index 514974d..858f0d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ target -/Cargo.lock /fuzz/hfuzz_target /.vscode diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..2eff66d --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,115 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "unty", +] + +[[package]] +name = "malloc_size_of" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d719de8b8f230028cf8192ae4c1b25267cd6b8a99d2747d345a70b8c81aa13" + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "smallvec" +version = "1.15.2" +dependencies = [ + "arbitrary", + "bincode 1.3.3", + "bincode 2.0.1", + "malloc_size_of", + "serde", + "unty", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae"