mirror of
https://github.com/openharmony/third_party_rust_rust-smallvec.git
synced 2026-07-19 23:03:32 -04:00
83c3ef273b8756b230e7f2e83a617be062a1233e
Test for drains that shift the tail, when inline Previously, the test suite only had one trip through the tail-shifting code in Drain::drop, and that is in the heap state. In the current implementation, a tail-shifting drain while in the inline state produces potentially dangerous aliasing which is currently accepted by default Miri and rejected with -Ztrack-raw-pointers. Adding this test case ensures that if this ever becomes an actual problem it will be easy to find.
rust-smallvec
"Small vector" optimization for Rust: store up to a small number of items on the stack
Example
use smallvec::{SmallVec, smallvec};
// This SmallVec can hold up to 4 items on the stack:
let mut v: SmallVec<[i32; 4]> = smallvec![1, 2, 3, 4];
// It will automatically move its contents to the heap if
// contains more than four items:
v.push(5);
// SmallVec points to a slice, so you can use normal slice
// indexing and other methods to access its contents:
v[0] = v[1] + v[2];
v.sort();
Description
Languages
Rust
98.8%
Shell
1.2%