pub struct IoSliceMut(/* private fields */);
Expand description
An unsafe, 'static
, maybe uninitialized, and mutable slice of bytes to
interact with system API.
Like IoSliceMut
in std
, IoSliceMut
guarantees the ABI compatibility
on unix and windows, but without the lifetime and accepts
MaybeUninit<u8>
, makes it easier to use with compio driver at the cost
of unsafe to construct. IoSliceMut
should only be used with compio driver.
Implementations§
Source§impl IoSliceMut
impl IoSliceMut
Sourcepub unsafe fn new(ptr: *mut MaybeUninit<u8>, len: usize) -> Self
pub unsafe fn new(ptr: *mut MaybeUninit<u8>, len: usize) -> Self
Create a new IoSliceMut
from a raw pointer and a length.
§Safety
The caller must ensure that:
- the pointer is valid for the lifetime of the
IoSliceMut
- the length is correct (the content can be uninitialized, but must be accessible)
- the pointer is not used for anything else while the
IoSliceMut
is in use
Sourcepub unsafe fn from_slice(slice: &mut [u8]) -> Self
pub unsafe fn from_slice(slice: &mut [u8]) -> Self
Create a new IoSliceMut
from an initialized slice.
§Safety
The caller must ensure that, during the lifetime of the IoSliceMut
,
the slice is valid the and is not used for anything else.
Sourcepub unsafe fn from_uninit(slice: &mut [MaybeUninit<u8>]) -> Self
pub unsafe fn from_uninit(slice: &mut [MaybeUninit<u8>]) -> Self
Create a new IoSliceMut
from a uninitialized slice.
§Safety
The caller must ensure that, during the lifetime of the IoSliceMut
,
the slice is valid the and is not used for anything else.
Sourcepub fn as_ptr(&self) -> *mut MaybeUninit<u8>
pub fn as_ptr(&self) -> *mut MaybeUninit<u8>
Get the pointer to the buffer.