pub trait HTTStorageProvider: HTTExtensionBase {
Show 14 methods
// Required methods
fn store(&mut self, path: &str, data: &[u8]) -> ExtensionResult<()>;
fn retrieve(&self, path: &str) -> ExtensionResult<Vec<u8>>;
fn delete(&mut self, path: &str) -> ExtensionResult<()>;
fn exists(&self, path: &str) -> ExtensionResult<bool>;
fn list(&self, prefix: &str) -> ExtensionResult<Vec<String>>;
fn get_metadata(
&self,
path: &str,
) -> ExtensionResult<HashMap<String, String>>;
fn set_metadata(
&mut self,
path: &str,
key: &str,
value: &str,
) -> ExtensionResult<()>;
fn flush(&mut self) -> ExtensionResult<()>;
fn begin_transaction(&mut self) -> ExtensionResult<()>;
fn commit_transaction(&mut self) -> ExtensionResult<()>;
fn rollback_transaction(&mut self) -> ExtensionResult<()>;
fn supports_transactions(&self) -> bool;
fn is_available(&self) -> bool;
fn stats(&self) -> ExtensionResult<HashMap<String, String>>;
}Expand description
Storage provider interface for HTT.
Allows HTT to be integrated with various storage backends.
Required Methods§
Sourcefn store(&mut self, path: &str, data: &[u8]) -> ExtensionResult<()>
fn store(&mut self, path: &str, data: &[u8]) -> ExtensionResult<()>
Store data at the given path.
Sourcefn delete(&mut self, path: &str) -> ExtensionResult<()>
fn delete(&mut self, path: &str) -> ExtensionResult<()>
Delete data at the given path.
Sourcefn exists(&self, path: &str) -> ExtensionResult<bool>
fn exists(&self, path: &str) -> ExtensionResult<bool>
Check if data exists at the given path.
Sourcefn list(&self, prefix: &str) -> ExtensionResult<Vec<String>>
fn list(&self, prefix: &str) -> ExtensionResult<Vec<String>>
List paths matching the given prefix.
Sourcefn get_metadata(&self, path: &str) -> ExtensionResult<HashMap<String, String>>
fn get_metadata(&self, path: &str) -> ExtensionResult<HashMap<String, String>>
Get metadata for the given path.
Sourcefn set_metadata(
&mut self,
path: &str,
key: &str,
value: &str,
) -> ExtensionResult<()>
fn set_metadata( &mut self, path: &str, key: &str, value: &str, ) -> ExtensionResult<()>
Set metadata for the given path.
Sourcefn flush(&mut self) -> ExtensionResult<()>
fn flush(&mut self) -> ExtensionResult<()>
Flush any pending changes to durable storage.
Sourcefn begin_transaction(&mut self) -> ExtensionResult<()>
fn begin_transaction(&mut self) -> ExtensionResult<()>
Begin a transaction.
Sourcefn commit_transaction(&mut self) -> ExtensionResult<()>
fn commit_transaction(&mut self) -> ExtensionResult<()>
Commit a transaction.
Sourcefn rollback_transaction(&mut self) -> ExtensionResult<()>
fn rollback_transaction(&mut self) -> ExtensionResult<()>
Rollback a transaction.
Sourcefn supports_transactions(&self) -> bool
fn supports_transactions(&self) -> bool
Check if the provider supports transactions.
Sourcefn is_available(&self) -> bool
fn is_available(&self) -> bool
Check if the provider is available.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".