dataplane_sdk/core/db/
data_flow.rs1use crate::core::{error::DbResult, model::data_flow::DataFlow};
14pub mod memory;
15
16#[cfg(test)]
17use crate::core::db::tx::MockTransaction;
18
19#[async_trait::async_trait]
20#[cfg_attr(test, mockall::automock(type Transaction = MockTransaction;))]
21pub trait DataFlowRepo: Send + Sync {
22 type Transaction;
23
24 async fn create(&self, tx: &mut Self::Transaction, flow: &DataFlow) -> DbResult<()>;
25
26 async fn fetch_by_id(
27 &self,
28 tx: &mut Self::Transaction,
29 flow_id: &str,
30 ) -> DbResult<Option<DataFlow>>;
31
32 async fn update(&self, tx: &mut Self::Transaction, flow: &DataFlow) -> DbResult<()>;
33
34 async fn delete(&self, tx: &mut Self::Transaction, flow_id: &str) -> DbResult<()>;
35}