pub struct BlockDevice { /* private fields */ }
Expand description
BlockDevice is an implementation of Device backed by a real block device behind a FIFO.
Implementations§
Source§impl BlockDevice
impl BlockDevice
Trait Implementations§
Source§impl Device for BlockDevice
impl Device for BlockDevice
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.
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<'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_with_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
offset: u64,
buffer: BufferRef<'life1>,
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>,
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 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 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|.
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.)
Auto Trait Implementations§
impl !Freeze for BlockDevice
impl !RefUnwindSafe for BlockDevice
impl Send for BlockDevice
impl Sync for BlockDevice
impl Unpin for BlockDevice
impl !UnwindSafe for BlockDevice
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