pub trait Sealed<T> {
type Output;
// Required methods
fn parts_mut(&mut self) -> (*mut T, usize);
unsafe fn assume_init(self, len: usize) -> Self::Output;
}
Required Associated Types§
Required Methods§
Sourcefn parts_mut(&mut self) -> (*mut T, usize)
fn parts_mut(&mut self) -> (*mut T, usize)
Return a pointer and length for this buffer.
The length is the number of elements of type T
, not a number of
bytes.
It’s tempting to have this return &mut [MaybeUninit<T>]
instead,
however that would require this function to be unsafe
, because
callers could use the &mut [MaybeUninit<T>]
slice to set elements
to MaybeUninit::<T>::uninit()
, which would be a problem if Self
is &mut [T]
or similar.
Sourceunsafe fn assume_init(self, len: usize) -> Self::Output
unsafe fn assume_init(self, len: usize) -> Self::Output
Convert a finished buffer pointer into its result.
§Safety
At least len
elements of the buffer must now be initialized.