pub trait File: Send + Sync {
// Required methods
fn lock_file(&self, exclusive: bool) -> Result<()>;
fn unlock_file(&self) -> Result<()>;
fn pread(&self, pos: usize, c: Arc<Completion>) -> Result<()>;
fn pwrite(
&self,
pos: usize,
buffer: Arc<RefCell<Buffer>>,
c: Arc<Completion>,
) -> Result<()>;
fn sync(&self, c: Arc<Completion>) -> Result<()>;
fn size(&self) -> Result<u64>;
}