pub struct FakeDevice { /* private fields */ }Expand description
A Device backed by a memory buffer.
Implementations§
Source§impl FakeDevice
impl FakeDevice
pub fn new(block_count: u64, block_size: u32) -> Self
pub fn set_observer(&mut self, observer: Box<dyn Observer>)
Trait Implementations§
Source§impl Device for FakeDevice
impl Device for FakeDevice
Source§fn poison(&self) -> Result<(), Error>
fn poison(&self) -> Result<(), Error>
Sets the poisoned state for the device. A poisoned device will panic the thread that performs Drop on it.
Source§fn allocate_buffer(&self, size: usize) -> BufferFuture<'_> ⓘ
fn allocate_buffer(&self, size: usize) -> BufferFuture<'_> ⓘ
Allocates a transfer buffer of at least |size| bytes for doing I/O with the device.
The actual size of the buffer will be rounded up to a block-aligned size.
Blocks until enough capacity is available in the buffer.
Source§fn block_size(&self) -> u32
fn block_size(&self) -> u32
Returns the block size of the device. Buffers are aligned to block-aligned chunks.
Source§fn block_count(&self) -> u64
fn block_count(&self) -> u64
Returns the number of blocks of the device.
Source§fn read_with_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: MutableBufferRef<'life1>,
_read_opts: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_with_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: MutableBufferRef<'life1>,
_read_opts: ReadOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fills |buffer| with blocks read from |offset|.
Source§fn write_with_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: BufferRef<'life1>,
_write_opts: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write_with_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: BufferRef<'life1>,
_write_opts: WriteOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Writes the contents of |buffer| to the device at |offset|.
Source§fn trim<'life0, 'async_trait>(
&'life0 self,
range: Range<u64>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn trim<'life0, 'async_trait>(
&'life0 self,
range: Range<u64>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Trims the given device |range|.
Source§fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Closes the block device. It is an error to continue using the device after this, but close
itself is idempotent.
Source§fn flush<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn flush<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Flush the device.
Source§fn reopen(&self, read_only: bool)
fn reopen(&self, read_only: bool)
Reopens the device, making it usable again. (Only implemented for testing devices.)
Source§fn is_read_only(&self) -> bool
fn is_read_only(&self) -> bool
Returns whether the device is read-only.
Source§fn supports_trim(&self) -> bool
fn supports_trim(&self) -> bool
Returns whether the device supports trim.
Source§fn discard_random_since_last_flush(&self) -> Result<(), Error>
fn discard_random_since_last_flush(&self) -> Result<(), Error>
Discards random blocks since the last flush.
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: MutableBufferRef<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: MutableBufferRef<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fills |buffer| with blocks read from |offset|.
Source§fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: BufferRef<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: BufferRef<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Writes the contents of |buffer| to the device at |offset|.
Auto Trait Implementations§
impl !Freeze for FakeDevice
impl !RefUnwindSafe for FakeDevice
impl Send for FakeDevice
impl Sync for FakeDevice
impl Unpin for FakeDevice
impl UnsafeUnpin for FakeDevice
impl !UnwindSafe for FakeDevice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more