Skip to main content

FileSystem

Trait FileSystem 

Source
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 method
    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 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