Expand description
A wrapper around the decomposed parts of a Vec<T>
.
This crate defines a struct that contains the Vec
’s internal pointer,
length, and allocated capacity.
RawParts
makes Vec::from_raw_parts
and Vec::into_raw_parts
easier
to use by giving names to the returned values. This prevents errors from
mixing up the two usize
values of length and capacity.
§Examples
use raw_parts::RawParts;
let v: Vec<i32> = vec![-1, 0, 1];
let RawParts { ptr, length, capacity } = RawParts::from_vec(v);
let rebuilt = unsafe {
// We can now make changes to the components, such as
// transmuting the raw pointer to a compatible type.
let ptr = ptr as *mut u32;
let raw_parts = RawParts { ptr, length, capacity };
raw_parts.into_vec()
};
assert_eq!(rebuilt, [4294967295, 0, 1]);
§no_std
raw-parts is no_std
compatible with a required dependency on alloc
.
Structs§
- A wrapper around the decomposed parts of a
Vec<T>
.