Skip to main content

FileSystem

Trait FileSystem 

Source
pub trait FileSystem {
Show 26 methods // Required methods fn sync_data(&mut self, tcf: &VfFile) -> VfResult<()>; fn open_impl(&mut self, request: &OpenRequest) -> VfResult<VfFile>; fn close_impl(&mut self, file: &VfFile) -> VfResult<()>; fn read_impl(&mut self, request: &ReadOp) -> VfResult<ReadResult>; fn write_impl(&mut self, request: WriteOpRef<'_>) -> VfResult<WriteResult>; fn seek_impl(&mut self, file: &VfFile, position: SeekFrom) -> VfResult<u64>; fn metadata_impl(&mut self, query: MetadataQuery) -> VfResult<VfAttrs>; fn set_attributes_impl(&mut self, update: SetAttributes) -> VfResult<()>; // Provided methods fn vstatfs_impl( &mut self, files: &[VfFile], ) -> VfResult<Vec<FilesystemStats>> { ... } fn close_deferred(&mut self, file: &VfFile) -> VfResult<()> { ... } fn take_notifications(&mut self) -> Vec<Box<dyn FnOnce() + Send>> { ... } fn capability_bits(&self) -> u64 { ... } fn capabilities(&self) -> Capabilities { ... } fn abs_path(&self, path: &Path) -> PathBuf { ... } fn open_path_impl( &mut self, base: VfPathBase, pathname: &Path, flags: i32, mode: u32, ) -> VfResult<VfFile> { ... } fn sync_all(&mut self, tcf: &VfFile) -> VfResult<()> { ... } fn chdir(&mut self, path: &Path) -> VfResult<()> { ... } fn getcwd(&self) -> PathBuf { ... } fn seek_raw_impl( &mut self, tcf: &VfFile, offset: i64, whence: SeekFrom, ) -> VfResult<i64> { ... } fn vf_path(&self, file: &VfFile) -> VfResult<PathBuf> { ... } fn open_raw_impl( &mut self, pathname: &Path, flags: i32, mode: u32, ) -> VfResult<VfFile> { ... } fn read_raw_impl( &mut self, file: &VfFile, offset: u64, length: usize, ) -> VfResult<Vec<u8>> { ... } fn write_raw_impl( &mut self, file: &VfFile, offset: u64, data: &[u8], ) -> VfResult<usize> { ... } fn read_file_impl( &mut self, file: &VfFile, max_bytes: usize, ) -> VfResult<Vec<u8>> { ... } fn read_into_impl( &mut self, request: &ReadOp, buffer: &mut [u8], ) -> VfResult<ReadIntoResult> { ... } fn vsetattrs_impl( &mut self, updates: Vec<SetAttributes>, follow: bool, ) -> VfResult<()> { ... }
}
Expand description

Minimum contract for owned handles and descriptor lifecycle. This includes handle-level metadata/statistics hooks, but does not require namespace operations, directory enumeration, or native vector I/O.

Required Methods§

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Provided Methods§

Source

fn vstatfs_impl(&mut self, files: &[VfFile]) -> VfResult<Vec<FilesystemStats>>

Source

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

Source

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

Source

fn capability_bits(&self) -> u64

Source

fn capabilities(&self) -> Capabilities

Source

fn abs_path(&self, path: &Path) -> PathBuf

Source

fn open_path_impl( &mut self, base: VfPathBase, pathname: &Path, flags: i32, mode: u32, ) -> VfResult<VfFile>

Source

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

Source

fn chdir(&mut self, path: &Path) -> VfResult<()>

Source

fn getcwd(&self) -> PathBuf

Source

fn seek_raw_impl( &mut self, tcf: &VfFile, offset: i64, whence: SeekFrom, ) -> VfResult<i64>

Source

fn vf_path(&self, file: &VfFile) -> VfResult<PathBuf>

Source

fn open_raw_impl( &mut self, pathname: &Path, flags: i32, mode: u32, ) -> VfResult<VfFile>

Source

fn read_raw_impl( &mut self, file: &VfFile, offset: u64, length: usize, ) -> VfResult<Vec<u8>>

Source

fn write_raw_impl( &mut self, file: &VfFile, offset: u64, data: &[u8], ) -> VfResult<usize>

Source

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

Source

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

Source

fn vsetattrs_impl( &mut self, updates: Vec<SetAttributes>, follow: bool, ) -> VfResult<()>

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§