pub trait GraphStore: Send + Sync {
Show 15 methods
// Required methods
fn add_node(&self, node: Node) -> Result<()>;
fn add_edge(&self, edge: Edge) -> Result<()>;
fn get_node(&self, id: &str) -> Result<Option<Node>>;
fn get_all_nodes(&self) -> Result<Vec<Node>>;
fn get_all_edges(&self) -> Result<Vec<Edge>>;
fn neighbors(
&self,
id: &str,
relation_filter: Option<&str>,
) -> Result<Vec<(Node, Edge)>>;
fn search(&self, query: &str, top_k: usize) -> Result<Vec<(f64, Node)>>;
fn shortest_path(&self, src: &str, tgt: &str) -> Result<Option<Vec<Node>>>;
fn dijkstra_shortest_path(
&self,
src: &str,
tgt: &str,
) -> Result<Option<Vec<Node>>>;
fn subgraph(&self, node_ids: &[&str]) -> Result<(Vec<Node>, Vec<Edge>)>;
fn node_count(&self) -> Result<usize>;
fn edge_count(&self) -> Result<usize>;
fn remove_node(&self, id: &str) -> Result<()>;
fn remove_edge(
&self,
source: &str,
target: &str,
relation: &str,
) -> Result<()>;
fn clear(&self) -> Result<()>;
}Required Methods§
fn add_node(&self, node: Node) -> Result<()>
fn add_edge(&self, edge: Edge) -> Result<()>
fn get_node(&self, id: &str) -> Result<Option<Node>>
fn get_all_nodes(&self) -> Result<Vec<Node>>
fn get_all_edges(&self) -> Result<Vec<Edge>>
fn neighbors( &self, id: &str, relation_filter: Option<&str>, ) -> Result<Vec<(Node, Edge)>>
fn search(&self, query: &str, top_k: usize) -> Result<Vec<(f64, Node)>>
fn shortest_path(&self, src: &str, tgt: &str) -> Result<Option<Vec<Node>>>
fn dijkstra_shortest_path( &self, src: &str, tgt: &str, ) -> Result<Option<Vec<Node>>>
fn subgraph(&self, node_ids: &[&str]) -> Result<(Vec<Node>, Vec<Edge>)>
fn node_count(&self) -> Result<usize>
fn edge_count(&self) -> Result<usize>
fn remove_node(&self, id: &str) -> Result<()>
fn remove_edge(&self, source: &str, target: &str, relation: &str) -> Result<()>
fn clear(&self) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".