use super::QueryRecordOptions;
use anyhow::Result;
use async_trait::async_trait;
use jsonapi_core::Resource;
#[async_trait(?Send)]
pub trait Adapter {
async fn create_record(&self, resource: Resource) -> Result<Resource>;
async fn delete_record(&self, resource: &Resource) -> Result<()>;
async fn find_record(&self, resource_type: &str, id: &str) -> Result<Resource>;
async fn query(&self, resource_type: &str, query: serde_json::Value) -> Result<Vec<Resource>>;
async fn query_record(
&self,
resource_type: &str,
query: serde_json::Value,
options: QueryRecordOptions,
) -> Result<Resource>;
async fn update_record(&self, resource: Resource) -> Result<Resource>;
}
#[cfg(test)]
mod tests {
#[test]
fn can_todo() {
}
}