Ben Kimock f96cdfd269 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.
2022-01-02 23:15:56 -05:00
2020-04-22 12:42:04 -07:00
2020-06-29 11:50:38 +10:00
2020-04-22 12:44:08 -07:00
2021-09-28 10:46:32 -07:00
2018-06-06 09:19:13 -07:00
2018-06-06 09:19:13 -07:00
2019-12-19 08:33:51 -08:00

rust-smallvec

Documentation

Release notes

"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();
S
Description
对于小的vector,存储在栈上以优化性能表现
Readme 1.1 MiB
Languages
Rust 98.8%
Shell 1.2%