Struct kernel::processbuffer::WriteableProcessSlice
source · pub struct WriteableProcessSlice { /* private fields */ }
Expand description
Read-writeable and accessible slice of memory of a process buffer
The only way to obtain this struct is through a
ReadWriteProcessBuffer
.
Slices provide a more convenient, traditional interface to process memory. These slices are transient, as the underlying buffer must be checked each time a slice is created. This is usually enforced by the anonymous lifetime defined by the creation of the slice.
Implementations§
source§impl WriteableProcessSlice
impl WriteableProcessSlice
sourcepub fn copy_to_slice(&self, dest: &mut [u8])
pub fn copy_to_slice(&self, dest: &mut [u8])
Copy the contents of a WriteableProcessSlice
into a mutable
slice reference.
The length of self
must be the same as dest
. Subslicing
can be used to obtain a slice of matching length.
§Panics
This function will panic if self.len() != dest.len()
.
sourcepub fn copy_to_slice_or_err(&self, dest: &mut [u8]) -> Result<(), ErrorCode>
pub fn copy_to_slice_or_err(&self, dest: &mut [u8]) -> Result<(), ErrorCode>
Copy the contents of a WriteableProcessSlice
into a mutable
slice reference.
The length of self
must be the same as dest
. Subslicing
can be used to obtain a slice of matching length.
sourcepub fn copy_from_slice(&self, src: &[u8])
pub fn copy_from_slice(&self, src: &[u8])
Copy the contents of a slice of bytes into a WriteableProcessSlice
.
The length of src
must be the same as self
. Subslicing can
be used to obtain a slice of matching length.
§Panics
This function will panic if src.len() != self.len()
.
sourcepub fn copy_from_slice_or_err(&self, src: &[u8]) -> Result<(), ErrorCode>
pub fn copy_from_slice_or_err(&self, src: &[u8]) -> Result<(), ErrorCode>
Copy the contents of a slice of bytes into a WriteableProcessSlice
.
The length of src
must be the same as self
. Subslicing can
be used to obtain a slice of matching length.
sourcepub fn chunks(
&self,
chunk_size: usize,
) -> impl Iterator<Item = &WriteableProcessSlice>
pub fn chunks( &self, chunk_size: usize, ) -> impl Iterator<Item = &WriteableProcessSlice>
Iterate over the slice in chunks.
sourcepub fn get<I: ProcessSliceIndex<Self>>(
&self,
index: I,
) -> Option<&<I as ProcessSliceIndex<Self>>::Output>
pub fn get<I: ProcessSliceIndex<Self>>( &self, index: I, ) -> Option<&<I as ProcessSliceIndex<Self>>::Output>
Access a portion of the slice with bounds checking. If the access is not
within the slice then None
is returned.