Add Natvis visualizations for ArrayVec and ArrayString types #225
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change adds Natvis visualizations for ArrayVec and ArrayString to help improve the debugging experience on Windows.
Natvis is a framework that can be used to specify how types should be viewed under a supported debugger, such as the Windows debugger (WinDbg) and the Visual Studio debugger.
When debugging types such as ArrayVec and/or ArrayString under a Windows debugger, the entries for these data structures are not always clear upon first glance. The internal data structure is shown, and it's not presented in a user-friendly way. The Rust compiler does have Natvis support for some types, but this is limited to some of the core libraries and not supported for external crates.
rust-lang/rfcs#3191 proposes adding support for embedding debugging visualizations such as Natvis in a Rust crate. This RFC has been approved, merged and implemented.
This PR adds:
Natvis visualizations for both ArrayVec and ArrayString.
Tests for testing visualizers embedded in the
arrayvec
crate.Updates to the CI pipeline to ensure tests for visualizers are run so they do not break silently.
A new debugger_visualizer feature for the
arrayvec
crate to enable the unstable debugger_visualizer Rust feature.