pub trait MetadataStore: Send + Sync {
Show 14 methods
// Required methods
fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn resolve_parent<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<(InodeMeta, String)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn lstat<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn list_dir<'life0, 'async_trait>(
&'life0 self,
ino: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<DentryStat>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
attrs: CreateInodeAttrs,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn link<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
target: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn rename<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
src_parent: u64,
src: &'life1 str,
dst_parent: u64,
dst: &'life2 str,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn set_attr<'life0, 'async_trait>(
&'life0 self,
ino: u64,
patch: InodePatch,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn commit_write<'life0, 'async_trait>(
&'life0 self,
ino: u64,
edits: Vec<ChunkEdit>,
new_size: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_chunks<'life0, 'async_trait>(
&'life0 self,
ino: u64,
range: ChunkRange,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<ChunkRef>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn snapshot<'life0, 'async_trait>(
&'life0 self,
root: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<SnapshotId>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn fork<'life0, 'async_trait>(
&'life0 self,
snap: SnapshotId,
) -> Pin<Box<dyn Future<Output = VfsResult<u64>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn gc<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Required Methods§
fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve_parent<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<(InodeMeta, String)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn lstat<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_dir<'life0, 'async_trait>(
&'life0 self,
ino: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<DentryStat>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
attrs: CreateInodeAttrs,
) -> Pin<Box<dyn Future<Output = VfsResult<InodeMeta>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn link<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
target: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
parent: u64,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn rename<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
src_parent: u64,
src: &'life1 str,
dst_parent: u64,
dst: &'life2 str,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn set_attr<'life0, 'async_trait>(
&'life0 self,
ino: u64,
patch: InodePatch,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn commit_write<'life0, 'async_trait>(
&'life0 self,
ino: u64,
edits: Vec<ChunkEdit>,
new_size: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_chunks<'life0, 'async_trait>(
&'life0 self,
ino: u64,
range: ChunkRange,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<ChunkRef>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn snapshot<'life0, 'async_trait>(
&'life0 self,
root: u64,
) -> Pin<Box<dyn Future<Output = VfsResult<SnapshotId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fork<'life0, 'async_trait>(
&'life0 self,
snap: SnapshotId,
) -> Pin<Box<dyn Future<Output = VfsResult<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn gc<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = VfsResult<Vec<BlockKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".