Trait virtual_fs::VirtualFile
source · pub trait VirtualFile: Debug + AsyncRead + AsyncWrite + AsyncSeek + Unpin + Upcastable + Send {
// 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) -> BoxFuture<'static, 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 is_open(&self) -> bool { ... }
fn get_special_fd(&self) -> Option<u32> { ... }
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§
sourcefn last_accessed(&self) -> u64
fn last_accessed(&self) -> u64
the last time the file was accessed in nanoseconds as a UNIX timestamp
sourcefn last_modified(&self) -> u64
fn last_modified(&self) -> u64
the last time the file was modified in nanoseconds as a UNIX timestamp
sourcefn created_time(&self) -> u64
fn created_time(&self) -> u64
the time at which the file was created in nanoseconds as a UNIX timestamp
sourcefn set_len(&mut self, new_size: u64) -> Result<()>
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
Provided Methods§
sourcefn is_open(&self) -> bool
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
sourcefn get_special_fd(&self) -> Option<u32>
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
sourcefn copy_reference(
&mut self,
src: Box<dyn VirtualFile + Send + Sync + 'static>
) -> BoxFuture<'_, Result<()>>
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