pub trait FileSystem {
Show 35 methods
// Required methods
fn init<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn destroy<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn interrupt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
unique: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn lookup<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn forget<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
nlookup: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn getattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn setattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: SetAttrParam,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn readlink<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn mknod<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: CreateParam,
reply: ReplyEntry<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn mkdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
mode: u32,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn unlink<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn rmdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn symlink<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
target_path: &'life4 Path,
reply: ReplyEntry<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait;
fn rename<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: RenameParam,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn link<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_newparent: u64,
_newname: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn open<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn read<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
size: u32,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn write<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
data: Vec<u8>,
flags: u32,
reply: ReplyWrite<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn flush<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
lock_owner: u64,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn release<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
lock_owner: u64,
flush: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn fsync<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn opendir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn readdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
reply: ReplyDirectory<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn releasedir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn fsyncdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn statfs<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyStatFs<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn setxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_value: &'life4 [u8],
_flags: u32,
_position: u32,
reply: ReplyEmpty<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait;
fn getxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_size: u32,
reply: ReplyXAttr<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn listxattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_size: u32,
reply: ReplyXAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn removexattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn access<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_mask: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_parent: u64,
_name: &'life3 str,
_mode: u32,
_flags: u32,
reply: ReplyCreate<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn getlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
reply: ReplyLock<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn setlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
_sleep: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn bmap<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_blocksize: u32,
_idx: u64,
reply: ReplyBMap<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
}Expand description
FUSE filesystem trait
Required Methods§
Sourcefn init<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn init<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Initialize filesystem
Sourcefn destroy<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn destroy<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Clean up filesystem
Sourcefn interrupt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
unique: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn interrupt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
unique: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Interrupt another FUSE request
Sourcefn lookup<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn lookup<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Look up a directory entry by name and get its attributes.
Sourcefn forget<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
nlookup: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn forget<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
nlookup: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Forget about an inode
Sourcefn getattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn getattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get file attributes.
Sourcefn setattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: SetAttrParam,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn setattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: SetAttrParam,
reply: ReplyAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Set file attributes.
Sourcefn readlink<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn readlink<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Read symbolic link.
Sourcefn mknod<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: CreateParam,
reply: ReplyEntry<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn mknod<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: CreateParam,
reply: ReplyEntry<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Create file node.
Sourcefn mkdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
mode: u32,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn mkdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
mode: u32,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Create a directory
Sourcefn unlink<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn unlink<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Remove a file
Sourcefn rmdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn rmdir<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Remove a directory
Sourcefn symlink<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
target_path: &'life4 Path,
reply: ReplyEntry<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn symlink<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
parent: INum,
name: &'life3 str,
target_path: &'life4 Path,
reply: ReplyEntry<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Create a symbolic link
Sourcefn rename<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: RenameParam,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn rename<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
param: RenameParam,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Rename a file
Sourcefn link<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_newparent: u64,
_newname: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn link<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_newparent: u64,
_newname: &'life3 str,
reply: ReplyEntry<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Create a hard link
Sourcefn open<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn open<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Open a file
Sourcefn read<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
size: u32,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn read<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
size: u32,
reply: ReplyData<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Read data
Sourcefn write<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
data: Vec<u8>,
flags: u32,
reply: ReplyWrite<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn write<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
data: Vec<u8>,
flags: u32,
reply: ReplyWrite<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Write data
Sourcefn flush<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
lock_owner: u64,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn flush<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
lock_owner: u64,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Flush method
Sourcefn release<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
lock_owner: u64,
flush: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn release<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
lock_owner: u64,
flush: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Release an open file
Sourcefn fsync<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn fsync<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Synchronize file contents
Sourcefn opendir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn opendir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
flags: u32,
reply: ReplyOpen<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Open a directory
Sourcefn readdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
reply: ReplyDirectory<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn readdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
offset: i64,
reply: ReplyDirectory<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Read directory
Sourcefn releasedir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn releasedir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
flags: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Release an open directory
Sourcefn fsyncdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn fsyncdir<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
fh: u64,
datasync: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Synchronize directory contents
Sourcefn statfs<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyStatFs<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn statfs<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
req: &'life1 Request<'life2>,
reply: ReplyStatFs<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get file system statistics
Sourcefn setxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_value: &'life4 [u8],
_flags: u32,
_position: u32,
reply: ReplyEmpty<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn setxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_value: &'life4 [u8],
_flags: u32,
_position: u32,
reply: ReplyEmpty<'life5>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Set an extended attribute
Sourcefn getxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_size: u32,
reply: ReplyXAttr<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn getxattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
_size: u32,
reply: ReplyXAttr<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Get an extended attribute
Sourcefn listxattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_size: u32,
reply: ReplyXAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn listxattr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_size: u32,
reply: ReplyXAttr<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get an extended attribute
Sourcefn removexattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn removexattr<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_name: &'life3 str,
reply: ReplyEmpty<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Remove an extended attribute
Sourcefn access<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_mask: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn access<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_mask: u32,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Check file access permissions
Sourcefn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_parent: u64,
_name: &'life3 str,
_mode: u32,
_flags: u32,
reply: ReplyCreate<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_parent: u64,
_name: &'life3 str,
_mode: u32,
_flags: u32,
reply: ReplyCreate<'life4>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Create and open a file
Sourcefn getlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
reply: ReplyLock<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn getlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
reply: ReplyLock<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Test for a POSIX file lock
Sourcefn setlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
_sleep: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn setlk<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_lk_param: FileLockParam,
_sleep: bool,
reply: ReplyEmpty<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Acquire, modify or release a POSIX file lock
Sourcefn bmap<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_blocksize: u32,
_idx: u64,
reply: ReplyBMap<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn bmap<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 Request<'life2>,
_blocksize: u32,
_idx: u64,
reply: ReplyBMap<'life3>,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Map block index within file to block index within device