fish_lib/traits/
repository.rs

1
2
3
4
5
6
7
8
9
use crate::traits::model::Model;

pub trait Repository<T: Model> {
    fn create(new_entity: T::InsertType) -> Result<T, Box<dyn std::error::Error>>;

    fn find(id: T::PrimaryKeyType) -> Result<Option<T>, Box<dyn std::error::Error>>;
    fn save(entity: T) -> Result<T, Box<dyn std::error::Error>>;
    fn delete(entity: &T) -> Result<bool, Box<dyn std::error::Error>>;
}