Trait wildland_dfs::storage_backends::StorageBackend
source · pub trait StorageBackend: Send + Sync {
Show 15 methods
// Required methods
fn read_dir<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path
) -> Pin<Box<dyn Future<Output = Result<ReadDirResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path
) -> Pin<Box<dyn Future<Output = Result<MetadataResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn create_dir<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path
) -> Pin<Box<dyn Future<Output = Result<CreateDirResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn set_wildland_object_id<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
wildland_object_id: String
) -> Pin<Box<dyn Future<Output = Result<SetWildlandObjectIdResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_dir<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
is_recursive: bool
) -> Pin<Box<dyn Future<Output = Result<RemoveDirResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn path_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path
) -> Pin<Box<dyn Future<Output = Result<bool, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path
) -> Pin<Box<dyn Future<Output = Result<RemoveFileResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn rename<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
old_path: &'life1 Path,
new_path: &'life2 Path
) -> Pin<Box<dyn Future<Output = Result<RenameResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn set_permissions<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
permissions: WlPermissions
) -> Pin<Box<dyn Future<Output = Result<SetPermissionsResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn stat_fs<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<FsStat, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn mount<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<(), StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_space_usage<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<SpaceUsage, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
output: Box<dyn OStream>,
progress_reporter: Box<dyn ProgressReporter>
) -> Pin<Box<dyn Future<Output = Result<DownloadResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn upload<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
input: Box<dyn IStream>,
progress_reporter: Box<dyn ProgressReporter>,
creation_time: Option<UnixTimestamp>
) -> Pin<Box<dyn Future<Output = Result<UploadResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_path_by_uuid<'life0, 'async_trait>(
&'life0 self,
uuid: String
) -> Pin<Box<dyn Future<Output = Result<GetInfoResponse, StorageBackendError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
Error represents scenario when data could not be retrieved from the StorageBackend, e.g. some network error. This mean that operation can be called again later of data can still be successfully retrieved from another equivalent backend.
All logical errors, e.g. trying opening directory, should be reflected in the inner type, like OpenResponse. Those variants are hidden inside Ok value because they should not trigger retrying operation.
Required Methods§
fn read_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path ) -> Pin<Box<dyn Future<Output = Result<ReadDirResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn metadata<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path ) -> Pin<Box<dyn Future<Output = Result<MetadataResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn create_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path ) -> Pin<Box<dyn Future<Output = Result<CreateDirResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn set_wildland_object_id<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path, wildland_object_id: String ) -> Pin<Box<dyn Future<Output = Result<SetWildlandObjectIdResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn remove_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path, is_recursive: bool ) -> Pin<Box<dyn Future<Output = Result<RemoveDirResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn path_exists<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path ) -> Pin<Box<dyn Future<Output = Result<bool, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn remove_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path ) -> Pin<Box<dyn Future<Output = Result<RemoveFileResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn rename<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, old_path: &'life1 Path, new_path: &'life2 Path ) -> Pin<Box<dyn Future<Output = Result<RenameResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,
fn set_permissions<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 Path, permissions: WlPermissions ) -> Pin<Box<dyn Future<Output = Result<SetPermissionsResponse, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
fn stat_fs<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<FsStat, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
fn mount<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
sourcefn get_space_usage<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<SpaceUsage, StorageBackendError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_space_usage<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<SpaceUsage, StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Returns amount of (used, total) bytes