pub trait Database {
// Required methods
async fn initialize(
configuration: DatabaseConfiguration,
registrations: RepositoryMigrations,
) -> Result<Self, DatabaseError>
where Self: Sized;
async fn get<T: Serialize + DeserializeOwned + RepositoryItem>(
&self,
key: &str,
) -> Result<Option<T>, DatabaseError>;
async fn list<T: Serialize + DeserializeOwned + RepositoryItem>(
&self,
) -> Result<Vec<T>, DatabaseError>;
async fn set<T: Serialize + DeserializeOwned + RepositoryItem>(
&self,
key: &str,
value: T,
) -> Result<(), DatabaseError>;
async fn remove<T: Serialize + DeserializeOwned + RepositoryItem>(
&self,
key: &str,
) -> Result<(), DatabaseError>;
}
Required Methods§
async fn initialize(
configuration: DatabaseConfiguration,
registrations: RepositoryMigrations,
) -> Result<Self, DatabaseError>where
Self: Sized,
async fn get<T: Serialize + DeserializeOwned + RepositoryItem>( &self, key: &str, ) -> Result<Option<T>, DatabaseError>
async fn list<T: Serialize + DeserializeOwned + RepositoryItem>( &self, ) -> Result<Vec<T>, DatabaseError>
async fn set<T: Serialize + DeserializeOwned + RepositoryItem>( &self, key: &str, value: T, ) -> Result<(), DatabaseError>
async fn remove<T: Serialize + DeserializeOwned + RepositoryItem>( &self, key: &str, ) -> Result<(), DatabaseError>
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.