Struct disk::asynchronous::AsyncDiskFileWrapper  
source · pub struct AsyncDiskFileWrapper<T: DiskFile + Send> {
    blocking_pool: BlockingPool,
    inner: Arc<T>,
}Expand description
Async wrapper around a non-async DiskFile using a BlockingPool.
This is meant to be a transitional type, not a long-term solution for async disk support. Disk formats should be migrated to support async instead (b/219595052).
Fields§
§blocking_pool: BlockingPool§inner: Arc<T>Implementations§
Trait Implementations§
source§impl<T: DiskFile + Send> AsRawDescriptors for AsyncDiskFileWrapper<T>
 
impl<T: DiskFile + Send> AsRawDescriptors for AsyncDiskFileWrapper<T>
source§fn as_raw_descriptors(&self) -> Vec<RawDescriptor>
 
fn as_raw_descriptors(&self) -> Vec<RawDescriptor>
Returns the underlying raw descriptors. Read more
source§impl<T: 'static + DiskFile + DiskFlush + Send + Sync + FileAllocate + FileSetLen + FileSync + PunchHole + WriteZeroesAt> AsyncDisk for AsyncDiskFileWrapper<T>
 
impl<T: 'static + DiskFile + DiskFlush + Send + Sync + FileAllocate + FileSetLen + FileSync + PunchHole + WriteZeroesAt> AsyncDisk for AsyncDiskFileWrapper<T>
source§fn flush<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn flush<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Flush intermediary buffers and/or dirty state to file. fsync not required.
source§fn fsync<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn fsync<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Asynchronously fsyncs any completed operations to the disk.
source§fn fdatasync<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn fdatasync<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Asynchronously fdatasyncs any completed operations to the disk.
Note that an implementation may simply call fsync for fdatasync.
source§fn read_to_mem<'a, 'async_trait>(
    &'a self,
    file_offset: u64,
    mem: Arc<dyn BackingMemory + Send + Sync>,
    mem_offsets: MemRegionIter<'a>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'a: 'async_trait,
 
fn read_to_mem<'a, 'async_trait>(
    &'a self,
    file_offset: u64,
    mem: Arc<dyn BackingMemory + Send + Sync>,
    mem_offsets: MemRegionIter<'a>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'a: 'async_trait,
Reads from the file at ‘file_offset’ into memory 
mem at mem_offsets.
mem_offsets is similar to an iovec except relative to the start of mem.source§fn write_from_mem<'a, 'async_trait>(
    &'a self,
    file_offset: u64,
    mem: Arc<dyn BackingMemory + Send + Sync>,
    mem_offsets: MemRegionIter<'a>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'a: 'async_trait,
 
fn write_from_mem<'a, 'async_trait>(
    &'a self,
    file_offset: u64,
    mem: Arc<dyn BackingMemory + Send + Sync>,
    mem_offsets: MemRegionIter<'a>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'a: 'async_trait,
Writes to the file at ‘file_offset’ from memory 
mem at mem_offsets.source§fn punch_hole<'life0, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    length: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn punch_hole<'life0, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    length: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Replaces a range of bytes with a hole.
source§fn write_zeroes_at<'life0, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    length: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn write_zeroes_at<'life0, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    length: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Writes up to 
length bytes of zeroes to the stream, returning how many bytes were written.source§fn read_double_buffered<'life0, 'life1, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    buf: &'life1 mut [u8],
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
 
fn read_double_buffered<'life0, 'life1, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    buf: &'life1 mut [u8],
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
Reads from the file at ‘file_offset’ into 
buf. Read moresource§fn write_double_buffered<'life0, 'life1, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    buf: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
 
fn write_double_buffered<'life0, 'life1, 'async_trait>(
    &'life0 self,
    file_offset: u64,
    buf: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
Writes to the file at ‘file_offset’ from 
buf. Read moresource§impl<T: DiskFile + Send> DiskGetLen for AsyncDiskFileWrapper<T>
 
impl<T: DiskFile + Send> DiskGetLen for AsyncDiskFileWrapper<T>
source§impl<T: DiskFile + Send + FileAllocate> FileAllocate for AsyncDiskFileWrapper<T>
 
impl<T: DiskFile + Send + FileAllocate> FileAllocate for AsyncDiskFileWrapper<T>
Auto Trait Implementations§
impl<T> Freeze for AsyncDiskFileWrapper<T>
impl<T> RefUnwindSafe for AsyncDiskFileWrapper<T>where
    T: RefUnwindSafe,
impl<T> Send for AsyncDiskFileWrapper<T>where
    T: Sync,
impl<T> Sync for AsyncDiskFileWrapper<T>where
    T: Sync,
impl<T> Unpin for AsyncDiskFileWrapper<T>
impl<T> UnwindSafe for AsyncDiskFileWrapper<T>where
    T: RefUnwindSafe,
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