contrag_core/data_sources/
mod.rs1pub mod canister_state;
2pub mod stable_memory;
3
4use candid::CandidType;
5use crate::entity::RagEntity;
6use crate::error::Result;
7
8#[async_trait::async_trait]
12pub trait DataSource: Send + Sync {
13 async fn read_entity<T: RagEntity + CandidType>(
15 &self,
16 entity_type: &str,
17 entity_id: &str,
18 ) -> Result<T>;
19
20 async fn read_entities<T: RagEntity + CandidType + Send>(
22 &self,
23 entity_type: &str,
24 entity_ids: Vec<String>,
25 ) -> Result<Vec<T>>;
26
27 async fn query_entities<T: RagEntity + CandidType>(
30 &self,
31 entity_type: &str,
32 filter: Option<String>,
33 ) -> Result<Vec<T>> {
34 Ok(vec![])
36 }
37}