Trait Repository

Source
pub trait Repository<T: Model>: Send + Sync {
    // Required methods
    fn get_db(&self) -> Arc<RwLock<dyn DatabaseInterface>>;
    fn create(
        &self,
        new_entity: T::InsertType,
    ) -> Result<T, GameRepositoryError>;
    fn find(
        &self,
        id: T::PrimaryKeyType,
    ) -> Result<Option<T>, GameRepositoryError>;
    fn save(&self, entity: T) -> Result<T, GameRepositoryError>;
    fn delete(&self, entity: T) -> Result<bool, GameRepositoryError>;

    // Provided method
    fn get_connection(
        &self,
    ) -> Result<PooledConnection<ConnectionManager<PgConnection>>, GameDatabaseError> { ... }
}

Required Methods§

Source

fn get_db(&self) -> Arc<RwLock<dyn DatabaseInterface>>

Source

fn create(&self, new_entity: T::InsertType) -> Result<T, GameRepositoryError>

Source

fn find(&self, id: T::PrimaryKeyType) -> Result<Option<T>, GameRepositoryError>

Source

fn save(&self, entity: T) -> Result<T, GameRepositoryError>

Source

fn delete(&self, entity: T) -> Result<bool, GameRepositoryError>

Provided Methods§

Implementors§