pub trait EpisodeStore: Send + Sync {
// Required methods
fn append(&self, dto: &EpisodeDto) -> Result<EpisodeId, StoreError>;
fn get(&self, id: &EpisodeId) -> Result<Option<EpisodeDto>, StoreError>;
fn query(
&self,
filter: &EpisodeFilter,
) -> Result<Vec<EpisodeDto>, StoreError>;
fn count(&self, filter: Option<&EpisodeFilter>) -> Result<usize, StoreError>;
fn list_meta(
&self,
filter: Option<&EpisodeFilter>,
) -> Result<Vec<EpisodeMeta>, StoreError>;
}Expand description
Episode の永続化を担う Trait
DTO ベースで永続化を行う。 Domain Entity への変換は Repository 層が担当。
Required Methods§
Sourcefn append(&self, dto: &EpisodeDto) -> Result<EpisodeId, StoreError>
fn append(&self, dto: &EpisodeDto) -> Result<EpisodeId, StoreError>
EpisodeDto を追加
Sourcefn get(&self, id: &EpisodeId) -> Result<Option<EpisodeDto>, StoreError>
fn get(&self, id: &EpisodeId) -> Result<Option<EpisodeDto>, StoreError>
ID で DTO を取得
Sourcefn query(&self, filter: &EpisodeFilter) -> Result<Vec<EpisodeDto>, StoreError>
fn query(&self, filter: &EpisodeFilter) -> Result<Vec<EpisodeDto>, StoreError>
フィルタで検索
Sourcefn count(&self, filter: Option<&EpisodeFilter>) -> Result<usize, StoreError>
fn count(&self, filter: Option<&EpisodeFilter>) -> Result<usize, StoreError>
件数を取得
Sourcefn list_meta(
&self,
filter: Option<&EpisodeFilter>,
) -> Result<Vec<EpisodeMeta>, StoreError>
fn list_meta( &self, filter: Option<&EpisodeFilter>, ) -> Result<Vec<EpisodeMeta>, StoreError>
メタ情報のみをリスト(軽量)