pub trait AdminKeyValueStore:
WithError
+ Sized
+ Send {
type Config: Send + Sync;
// Required methods
fn get_name() -> String;
fn connect(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Self, Self::Error>> + Send;
fn clone_with_root_key(&self, root_key: &[u8]) -> Result<Self, Self::Error>;
fn list_all(
config: &Self::Config,
) -> impl Future<Output = Result<Vec<String>, Self::Error>> + Send;
fn list_root_keys(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Vec<Vec<u8>>, Self::Error>> + Send;
fn exists(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<bool, Self::Error>> + Send;
fn create(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<(), Self::Error>> + Send;
fn delete(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<(), Self::Error>> + Send;
// Provided methods
fn delete_all(
config: &Self::Config,
) -> impl Future<Output = Result<(), Self::Error>> + Send { ... }
fn maybe_create_and_connect(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Self, Self::Error>> + Send { ... }
fn recreate_and_connect(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Self, Self::Error>> + Send { ... }
}
Expand description
Low-level trait for the administration of stores and their namespaces.
Required Associated Types§
Required Methods§
Sourcefn connect(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Self, Self::Error>> + Send
fn connect( config: &Self::Config, namespace: &str, ) -> impl Future<Output = Result<Self, Self::Error>> + Send
Connects to an existing namespace using the given configuration.
Sourcefn clone_with_root_key(&self, root_key: &[u8]) -> Result<Self, Self::Error>
fn clone_with_root_key(&self, root_key: &[u8]) -> Result<Self, Self::Error>
Takes a connection and creates a new one with a different root_key
.
Sourcefn list_all(
config: &Self::Config,
) -> impl Future<Output = Result<Vec<String>, Self::Error>> + Send
fn list_all( config: &Self::Config, ) -> impl Future<Output = Result<Vec<String>, Self::Error>> + Send
Obtains the list of existing namespaces.
Sourcefn list_root_keys(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<Vec<Vec<u8>>, Self::Error>> + Send
fn list_root_keys( config: &Self::Config, namespace: &str, ) -> impl Future<Output = Result<Vec<Vec<u8>>, Self::Error>> + Send
Lists the root keys of the namespace. It is possible that some root keys have no keys.
Sourcefn exists(
config: &Self::Config,
namespace: &str,
) -> impl Future<Output = Result<bool, Self::Error>> + Send
fn exists( config: &Self::Config, namespace: &str, ) -> impl Future<Output = Result<bool, Self::Error>> + Send
Tests if a given namespace exists.
Provided Methods§
Sourcefn delete_all(
config: &Self::Config,
) -> impl Future<Output = Result<(), Self::Error>> + Send
fn delete_all( config: &Self::Config, ) -> impl Future<Output = Result<(), Self::Error>> + Send
Deletes all the existing namespaces.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.