Trait base::file_traits::FileReadWriteVolatile
source · pub trait FileReadWriteVolatile {
// Required methods
fn read_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>;
fn write_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>;
// Provided methods
fn read_vectored_volatile(
&mut self,
bufs: &[VolatileSlice<'_>]
) -> Result<usize> { ... }
fn read_exact_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()> { ... }
fn write_vectored_volatile(
&mut self,
bufs: &[VolatileSlice<'_>]
) -> Result<usize> { ... }
fn write_all_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()> { ... }
}
Expand description
A trait similar to Read
and Write
, but uses volatile memory as buffers.
Required Methods§
sourcefn read_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>
fn read_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>
Read bytes from this file into the given slice, returning the number of bytes read on success.
sourcefn write_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>
fn write_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<usize>
Write bytes from the slice to the given file, returning the number of bytes written on success.
Provided Methods§
sourcefn read_vectored_volatile(
&mut self,
bufs: &[VolatileSlice<'_>]
) -> Result<usize>
fn read_vectored_volatile( &mut self, bufs: &[VolatileSlice<'_>] ) -> Result<usize>
Like read_volatile
, except it reads to a slice of buffers. Data is copied to fill each
buffer in order, with the final buffer written to possibly being only partially filled. This
method must behave as a single call to read_volatile
with the buffers concatenated would.
The default implementation calls read_volatile
with either the first nonempty buffer
provided, or returns Ok(0)
if none exists.
sourcefn read_exact_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()>
fn read_exact_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()>
Reads bytes from this into the given slice until all bytes in the slice are written, or an error is returned.
sourcefn write_vectored_volatile(
&mut self,
bufs: &[VolatileSlice<'_>]
) -> Result<usize>
fn write_vectored_volatile( &mut self, bufs: &[VolatileSlice<'_>] ) -> Result<usize>
Like write_volatile
, except that it writes from a slice of buffers. Data is copied from
each buffer in order, with the final buffer read from possibly being only partially
consumed. This method must behave as a call to write_volatile
with the buffers
concatenated would. The default implementation calls write_volatile
with either the first
nonempty buffer provided, or returns Ok(0)
if none exists.
sourcefn write_all_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()>
fn write_all_volatile(&mut self, slice: VolatileSlice<'_>) -> Result<()>
Write bytes from the slice to the given file until all the bytes from the slice have been written, or an error is returned.