Crate raw_parts[−][src]
Expand description
A wrapper around the decomposed parts of a Vec<T>
.
This struct 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 };
RawParts::into_vec(raw_parts)
};
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>
.