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§

source

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,

source

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,

source

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,

source

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,

source

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,

source

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,

source

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,

source

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,

source

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,

source

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,

source

fn mount<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), StorageBackendError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

source

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

source

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,

source

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,

source

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,

Implementors§