Skip to main content

FileSystem

Trait FileSystem 

Source
pub trait FileSystem {
Show 14 methods // Required methods fn capabilities(&self) -> Capabilities; fn open_one(&mut self, request: &OpenRequest) -> VfResult<VfFile>; fn close_one(&mut self, file: &VfFile) -> VfResult<()>; fn sync_data(&mut self, file: &VfFile) -> VfResult<()>; fn sync_all(&mut self, file: &VfFile) -> VfResult<()>; fn read_one(&mut self, request: &ReadOp) -> VfResult<ReadResult>; fn write_one(&mut self, request: WriteOpRef<'_>) -> VfResult<WriteResult>; fn seek_one(&mut self, file: &VfFile, position: SeekFrom) -> VfResult<u64>; fn metadata(&mut self, query: MetadataQuery) -> VfResult<VfAttrs>; fn set_attributes(&mut self, update: SetAttributes) -> VfResult<()>; // Provided methods fn take_notifications(&mut self) -> Vec<Box<dyn FnOnce() + Send>> { ... } fn read_file( &mut self, file: &VfFile, max_bytes: usize, ) -> VfResult<Vec<u8>> { ... } fn close_deferred(&mut self, file: &VfFile) -> VfResult<()> { ... } fn read_one_into( &mut self, request: &ReadOp, buffer: &mut [u8], ) -> VfResult<ReadIntoResult> { ... }
}
Expand description

Core synchronous scalar filesystem operations.

Required Methods§

Source

fn capabilities(&self) -> Capabilities

Source

fn open_one(&mut self, request: &OpenRequest) -> VfResult<VfFile>

Source

fn close_one(&mut self, file: &VfFile) -> VfResult<()>

Source

fn sync_data(&mut self, file: &VfFile) -> VfResult<()>

Source

fn sync_all(&mut self, file: &VfFile) -> VfResult<()>

Source

fn read_one(&mut self, request: &ReadOp) -> VfResult<ReadResult>

Source

fn write_one(&mut self, request: WriteOpRef<'_>) -> VfResult<WriteResult>

Source

fn seek_one(&mut self, file: &VfFile, position: SeekFrom) -> VfResult<u64>

Source

fn metadata(&mut self, query: MetadataQuery) -> VfResult<VfAttrs>

Source

fn set_attributes(&mut self, update: SetAttributes) -> VfResult<()>

Provided Methods§

Source

fn take_notifications(&mut self) -> Vec<Box<dyn FnOnce() + Send>>

Extract callbacks for delivery after the owning client’s backend lock is released. Implementations must not invoke user callbacks in this hook.

Source

fn read_file(&mut self, file: &VfFile, max_bytes: usize) -> VfResult<Vec<u8>>

Read a complete opened file with a logical payload limit. Specialized backends override this to share their optimized vector whole-file path.

Source

fn close_deferred(&mut self, file: &VfFile) -> VfResult<()>

Finish cleanup of a previously owned, dropped handle. A backend that transfers ownership into its own queue after CLOSE fails must reconcile that queue here rather than repeatedly reporting an invalid descriptor.

Source

fn read_one_into( &mut self, request: &ReadOp, buffer: &mut [u8], ) -> VfResult<ReadIntoResult>

Read directly into caller storage when supported by the backend.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T: VecFs + ?Sized> FileSystem for T