auric_runtime/data/
adapter.rs1use super::QueryRecordOptions;
2use crate::Config;
3use anyhow::Result;
4use async_trait::async_trait;
5use jsonapi_core::Resource;
6
7#[async_trait(?Send)]
8pub trait Adapter {
9 fn init(&mut self, config: &Config) -> Result<()>;
11
12 async fn create_record(&self, resource: Resource) -> Result<Resource>;
14
15 async fn delete_record(&self, resource: &Resource) -> Result<()>;
17
18 async fn find_record(&self, resource_type: &str, id: &str) -> Result<Resource>;
20
21 async fn query(&self, resource_type: &str, query: serde_json::Value) -> Result<Vec<Resource>>;
23
24 async fn query_record(
26 &self,
27 resource_type: &str,
28 query: serde_json::Value,
29 options: QueryRecordOptions,
30 ) -> Result<Option<Resource>>;
31
32 async fn update_record(&self, resource: Resource) -> Result<Resource>;
34}
35
36#[cfg(test)]
37mod tests {
38 #[test]
39 fn can_todo() {
40 }
42}