pub trait VecLike<T>:
Index<usize, Output = T>
+ IndexMut<usize>
+ Index<Range<usize>, Output = [T]>
+ IndexMut<Range<usize>>
+ Index<RangeFrom<usize>, Output = [T]>
+ IndexMut<RangeFrom<usize>>
+ Index<RangeTo<usize>, Output = [T]>
+ IndexMut<RangeTo<usize>>
+ Index<RangeFull, Output = [T]>
+ IndexMut<RangeFull>
+ DerefMut<Target = [T]>
+ Extend<T> {
// Required method
fn push(&mut self, value: T);
}👎Deprecated: Use
Extend and Deref<[T]> insteadExpand description
panic!() in debug builds, optimization hint in release.
Common operations implemented by both Vec and SmallVec.
This can be used to write generic code that works with both Vec and SmallVec.
§Example
use smallvec::{VecLike, SmallVec};
fn initialize<V: VecLike<u8>>(v: &mut V) {
for i in 0..5 {
v.push(i);
}
}
let mut vec = Vec::new();
initialize(&mut vec);
let mut small_vec = SmallVec::<[u8; 8]>::new();
initialize(&mut small_vec);Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.