use crate::{
FileReader,
FileSystemExt,
FileWriter,
FsPath,
FsResult,
PersistOptions,
ReadOptions,
TempResource,
WriteOptions,
WriteOutcome,
};
pub trait TempFile: TempResource {
fn open_reader(&self, options: &ReadOptions) -> FsResult<Box<dyn FileReader>> {
self.fs().as_ref().open_reader(self.path(), options)
}
fn open_writer(&self, options: &WriteOptions) -> FsResult<Box<dyn FileWriter>> {
self.fs().as_ref().open_writer(self.path(), options)
}
fn read_all(&self) -> FsResult<Vec<u8>> {
self.fs().as_ref().read_all(self.path())
}
fn write_all(&self, bytes: &[u8]) -> FsResult<WriteOutcome> {
self.fs().as_ref().write_all(self.path(), bytes)
}
fn persist(self: Box<Self>, target: &FsPath, options: &PersistOptions) -> FsResult<WriteOutcome>;
}