Skip to main content

EpisodeRepository

Trait EpisodeRepository 

Source
pub trait EpisodeRepository: Send + Sync {
    // Required methods
    fn save(&self, episode: &Episode) -> Result<EpisodeId, StoreError>;
    fn find_by_id(&self, id: &EpisodeId) -> Result<Option<Episode>, StoreError>;
    fn find_all(
        &self,
        filter: &EpisodeFilter,
    ) -> Result<Vec<Episode>, StoreError>;
    fn count(&self, filter: Option<&EpisodeFilter>) -> Result<usize, StoreError>;
    fn list_meta(
        &self,
        filter: Option<&EpisodeFilter>,
    ) -> Result<Vec<EpisodeMeta>, StoreError>;
}
Expand description

Domain 層に公開する Episode の Repository インターフェース

Domain は永続化の詳細(RecordStore, EpisodeStore)を知らず、 このインターフェースのみを使用する。

Required Methods§

Source

fn save(&self, episode: &Episode) -> Result<EpisodeId, StoreError>

Episode を保存(Record も含めて永続化)

Source

fn find_by_id(&self, id: &EpisodeId) -> Result<Option<Episode>, StoreError>

ID で Episode を取得(Record を含む完全な Entity)

Source

fn find_all(&self, filter: &EpisodeFilter) -> Result<Vec<Episode>, StoreError>

フィルタで検索(Record を含む完全な Entity)

Source

fn count(&self, filter: Option<&EpisodeFilter>) -> Result<usize, StoreError>

件数を取得

Source

fn list_meta( &self, filter: Option<&EpisodeFilter>, ) -> Result<Vec<EpisodeMeta>, StoreError>

メタ情報のみをリスト(軽量)

Implementors§