Trait Inode
Source pub trait Inode:
Send
+ Sync
+ Debug {
Show 16 methods
// Required methods
fn metadata(&self) -> Result<Metadata, VfsError>;
fn set_metadata(&self, metadata: &Metadata) -> Result<(), VfsError>;
fn node_type(&self) -> VNodeType;
fn read_at(&self, offset: u64, buf: &mut [u8]) -> Result<usize, VfsError>;
fn write_at(&self, offset: u64, buf: &[u8]) -> Result<usize, VfsError>;
fn truncate(&self, size: u64) -> Result<(), VfsError>;
fn sync(&self) -> Result<(), VfsError>;
fn lookup(&self, name: &str) -> Result<Arc<dyn Inode>, VfsError>;
fn create(
&self,
name: &str,
typ: VNodeType,
) -> Result<Arc<dyn Inode>, VfsError>;
fn unlink(&self, name: &str) -> Result<(), VfsError>;
fn as_any(&self) -> &dyn Any;
// Provided methods
fn create_symlink(
&self,
name: &str,
target: &str,
) -> Result<Arc<dyn Inode>, VfsError> { ... }
fn create_device(
&self,
name: &str,
device: Arc<Device>,
) -> Result<Arc<dyn Inode>, VfsError> { ... }
fn rename(&self, old_name: &str, new_name: &str) -> Result<(), VfsError> { ... }
fn list(&self) -> Result<Vec<String>, VfsError> { ... }
fn read_symlink(&self) -> Result<String, VfsError> { ... }
}