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§
- RawParts
- A wrapper around the decomposed parts of a
Vec<T>.