1use crate::error::GraphmindResult;
4use crate::models::{QueryResult, ServerStatus};
5use async_trait::async_trait;
6
7#[async_trait]
13pub trait GraphmindClient: Send + Sync {
14 async fn query(&self, graph: &str, cypher: &str) -> GraphmindResult<QueryResult>;
16
17 async fn query_readonly(&self, graph: &str, cypher: &str) -> GraphmindResult<QueryResult>;
19
20 async fn delete_graph(&self, graph: &str) -> GraphmindResult<()>;
22
23 async fn list_graphs(&self) -> GraphmindResult<Vec<String>>;
25
26 async fn status(&self) -> GraphmindResult<ServerStatus>;
28
29 async fn ping(&self) -> GraphmindResult<String>;
31
32 async fn schema(&self, graph: &str) -> GraphmindResult<String>;
34
35 async fn explain(&self, graph: &str, cypher: &str) -> GraphmindResult<QueryResult>;
37
38 async fn profile(&self, graph: &str, cypher: &str) -> GraphmindResult<QueryResult>;
40}