Trait wasmer_wasix::VirtualFile

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<(), FsError>; fn unlink(&mut self) -> Result<(), FsError>; fn poll_read_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize, Error>>; fn poll_write_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<usize, Error>>; // Provided methods fn set_times( &mut self, atime: Option<u64>, mtime: Option<u64>, ) -> Result<(), FsError> { ... } fn is_open(&self) -> bool { ... } fn get_special_fd(&self) -> Option<u32> { ... } fn write_from_mmap(&mut self, _offset: u64, _len: u64) -> Result<(), Error> { ... } fn copy_reference( &mut self, src: Box<dyn VirtualFile + Send + Sync>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>> { ... }
}
Expand description

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

Required Methods§

fn last_accessed(&self) -> u64

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

fn last_modified(&self) -> u64

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

fn created_time(&self) -> u64

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

fn size(&self) -> u64

the size of the file in bytes

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

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

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

Polls the file for when there is data to be read

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

Polls the file for when it is available for writing

Provided Methods§

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

sets accessed and modified time

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

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

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

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

fn copy_reference( &mut self, src: Box<dyn VirtualFile + Send + Sync>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>

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 WasiStateFileGuard

§

impl VirtualFile for wasmer_wasix::state::types::Stderr

§

impl VirtualFile for wasmer_wasix::state::types::Stdin

§

impl VirtualFile for wasmer_wasix::state::types::Stdout

§

impl VirtualFile for Pipe

§

impl VirtualFile for ArcBoxFile

§

impl VirtualFile for BufferFile

§

impl VirtualFile for CombineFile

§

impl VirtualFile for CopyOnWriteFile

§

impl VirtualFile for DeviceFile

§

impl VirtualFile for DualWriteFile

§

impl VirtualFile for File

§

impl VirtualFile for NullFile

§

impl VirtualFile for RandomFile

§

impl VirtualFile for StaticFile

§

impl VirtualFile for Stderr

§

impl VirtualFile for Stdin

§

impl VirtualFile for Stdout

§

impl VirtualFile for WebCFile

§

impl VirtualFile for ZeroFile

§

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