Trait Database

Source
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§

Source

async fn initialize( configuration: DatabaseConfiguration, registrations: RepositoryMigrations, ) -> Result<Self, DatabaseError>
where Self: Sized,

Source

async fn get<T: Serialize + DeserializeOwned + RepositoryItem>( &self, key: &str, ) -> Result<Option<T>, DatabaseError>

Source

async fn list<T: Serialize + DeserializeOwned + RepositoryItem>( &self, ) -> Result<Vec<T>, DatabaseError>

Source

async fn set<T: Serialize + DeserializeOwned + RepositoryItem>( &self, key: &str, value: T, ) -> Result<(), DatabaseError>

Source

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.

Implementors§