pub trait FileSystem {
// 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 read_file(
&mut self,
file: &VfFile,
max_bytes: usize,
) -> VfResult<Vec<u8>> { ... }
fn read_one_into(
&mut self,
request: &ReadOp,
buffer: &mut [u8],
) -> VfResult<ReadIntoResult> { ... }
}Expand description
Core synchronous scalar filesystem operations.
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§
Sourcefn read_file(&mut self, file: &VfFile, max_bytes: usize) -> VfResult<Vec<u8>>
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.
Sourcefn read_one_into(
&mut self,
request: &ReadOp,
buffer: &mut [u8],
) -> VfResult<ReadIntoResult>
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".