pub mod canister_state;
pub mod stable_memory;
use candid::CandidType;
use crate::entity::RagEntity;
use crate::error::Result;
#[async_trait::async_trait]
pub trait DataSource: Send + Sync {
async fn read_entity<T: RagEntity + CandidType>(
&self,
entity_type: &str,
entity_id: &str,
) -> Result<T>;
async fn read_entities<T: RagEntity + CandidType + Send>(
&self,
entity_type: &str,
entity_ids: Vec<String>,
) -> Result<Vec<T>>;
async fn query_entities<T: RagEntity + CandidType>(
&self,
entity_type: &str,
filter: Option<String>,
) -> Result<Vec<T>> {
Ok(vec![])
}
}