Trait virtual_fs::VirtualFile

source ·
pub trait VirtualFile: Debug + AsyncRead + AsyncWrite + AsyncSeek + Unpin + Upcastable + Send {
Show 13 methods // Required methods fn last_accessed(&self) -> u64; fn last_modified(&self) -> u64; fn created_time(&self) -> u64; fn size(&self) -> u64; fn set_len(&mut self, new_size: u64) -> Result<()>; fn unlink(&mut self) -> Result<()>; fn poll_read_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize>>; fn poll_write_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize>>; // Provided methods fn set_times( &mut self, atime: Option<u64>, mtime: Option<u64>, ) -> Result<()> { ... } fn is_open(&self) -> bool { ... } fn get_special_fd(&self) -> Option<u32> { ... } fn write_from_mmap(&mut self, _offset: u64, _len: u64) -> Result<()> { ... } fn copy_reference( &mut self, src: Box<dyn VirtualFile + Send + Sync + 'static>, ) -> BoxFuture<'_, Result<()>> { ... }
}
Expand description

This trait relies on your file closing when it goes out of scope via Drop

Required Methods§

source

fn last_accessed(&self) -> u64

the last time the file was accessed in nanoseconds as a UNIX timestamp

source

fn last_modified(&self) -> u64

the last time the file was modified in nanoseconds as a UNIX timestamp

source

fn created_time(&self) -> u64

the time at which the file was created in nanoseconds as a UNIX timestamp

source

fn size(&self) -> u64

the size of the file in bytes

source

fn set_len(&mut self, new_size: u64) -> Result<()>

Change the size of the file, if the new_size is greater than the current size the extra bytes will be allocated and zeroed

Request deletion of the file

source

fn poll_read_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize>>

Polls the file for when there is data to be read

source

fn poll_write_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize>>

Polls the file for when it is available for writing

Provided Methods§

source

fn set_times(&mut self, atime: Option<u64>, mtime: Option<u64>) -> Result<()>

sets accessed and modified time

source

fn is_open(&self) -> bool

Indicates if the file is opened or closed. This function must not block Defaults to a status of being constantly open

source

fn get_special_fd(&self) -> Option<u32>

Used for “special” files such as stdin, stdout and stderr. Always returns the same file descriptor (0, 1 or 2). Returns None on normal files

source

fn write_from_mmap(&mut self, _offset: u64, _len: u64) -> Result<()>

Writes to this file using an mmap offset and reference (this method only works for mmap optimized file systems)

source

fn copy_reference( &mut self, src: Box<dyn VirtualFile + Send + Sync + 'static>, ) -> BoxFuture<'_, Result<()>>

This method will copy a file from a source to this destination where the default is to do a straight byte copy however file system implementors may optimize this to do a zero copy

Implementors§

source§

impl VirtualFile for ArcBoxFile

source§

impl VirtualFile for BufferFile

source§

impl VirtualFile for CombineFile

source§

impl VirtualFile for CopyOnWriteFile

source§

impl VirtualFile for DualWriteFile

source§

impl VirtualFile for virtual_fs::host_fs::File

source§

impl VirtualFile for virtual_fs::host_fs::Stderr

source§

impl VirtualFile for virtual_fs::host_fs::Stdin

source§

impl VirtualFile for virtual_fs::host_fs::Stdout

source§

impl VirtualFile for FileHandle

source§

impl VirtualFile for virtual_fs::mem_fs::stdio::Stderr

source§

impl VirtualFile for virtual_fs::mem_fs::stdio::Stdin

source§

impl VirtualFile for virtual_fs::mem_fs::stdio::Stdout

source§

impl VirtualFile for NullFile

source§

impl VirtualFile for Pipe

source§

impl VirtualFile for RandomFile

source§

impl VirtualFile for DeviceFile

source§

impl VirtualFile for StaticFile

source§

impl VirtualFile for WebCFile

source§

impl VirtualFile for TraceFile

source§

impl VirtualFile for virtual_fs::webc_volume_fs::File

source§

impl VirtualFile for ZeroFile

source§

impl<T> VirtualFile for ArcFile<T>
where T: VirtualFile + Send + Sync + 'static,