Skip to main content

GraphStore

Trait GraphStore 

Source
pub trait GraphStore {
Show 26 methods // Required methods fn upsert_node(&self, node: &GraphNode) -> Result<(), Error>; fn upsert_edge(&self, edge: &GraphEdge) -> Result<(), Error>; fn delete_node(&self, id: &str) -> Result<usize, Error>; fn delete_edge( &self, from_id: &str, to_id: &str, kind: &str, ) -> Result<usize, Error>; fn node(&self, id: &str) -> Result<Option<GraphNode>, Error>; fn all_nodes(&self) -> Result<Vec<GraphNode>, Error>; fn all_edges(&self) -> Result<Vec<GraphEdge>, Error>; fn nodes_by_kind(&self, kind: &str) -> Result<Vec<GraphNode>, Error>; fn outgoing_edges( &self, from_id: &str, kind: Option<&str>, ) -> Result<Vec<GraphEdge>, Error>; fn shortest_path( &self, from_id: &str, to_id: &str, kind: Option<&str>, ) -> Result<Option<GraphPath>, Error>; // Provided methods fn edge(&self, edge_id: &str) -> Result<Option<GraphEdge>, Error> { ... } fn graph_counts(&self) -> Result<(usize, usize), Error> { ... } fn sample_edge( &self, kind: Option<&str>, ) -> Result<Option<GraphEdge>, Error> { ... } fn sample_edge_with_property( &self, ) -> Result<Option<(GraphEdge, GraphPropertyFilter)>, Error> { ... } fn incident_edges( &self, node_id: &str, kind: Option<&str>, ) -> Result<Vec<GraphEdge>, Error> { ... } fn paged_edges( &self, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error> { ... } fn paged_incident_edges( &self, node_id: &str, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error> { ... } fn edges_between_nodes( &self, node_ids: &BTreeSet<String>, ) -> Result<Vec<GraphEdge>, Error> { ... } fn shortest_path_with_max_hops( &self, from_id: &str, to_id: &str, kind: Option<&str>, max_hops: Option<usize>, ) -> Result<Option<GraphPath>, Error> { ... } fn neighborhood( &self, center_id: &str, depth: usize, kind: Option<&str>, ) -> Result<Option<GraphSubgraph>, Error> { ... } fn paged_nodes_by_kind( &self, kind: &str, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error> { ... } fn paged_neighborhood( &self, center_id: &str, depth: usize, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<Option<GraphPagedSubgraph>, Error> { ... } fn ranked_neighborhood( &self, center_id: &str, options: &RankedNeighborhoodOptions, ) -> Result<Option<RankedNeighborhoodResult>, Error> { ... } fn reachable_nodes_by_kind( &self, from_id: &str, kind: &str, depth: usize, limit: usize, ) -> Result<Vec<(GraphNode, GraphPath)>, Error> { ... } fn reachable_nodes_by_kinds( &self, from_id: &str, kinds: &[&str], depth: usize, limit: usize, ) -> Result<BTreeMap<String, Vec<(GraphNode, GraphPath)>>, Error> { ... } fn resolve_evidence_target( &self, target: &str, kinds: &[&str], ) -> Result<Option<GraphNode>, Error> { ... }
}

Required Methods§

Source

fn upsert_node(&self, node: &GraphNode) -> Result<(), Error>

Source

fn upsert_edge(&self, edge: &GraphEdge) -> Result<(), Error>

Source

fn delete_node(&self, id: &str) -> Result<usize, Error>

Source

fn delete_edge( &self, from_id: &str, to_id: &str, kind: &str, ) -> Result<usize, Error>

Source

fn node(&self, id: &str) -> Result<Option<GraphNode>, Error>

Source

fn all_nodes(&self) -> Result<Vec<GraphNode>, Error>

Source

fn all_edges(&self) -> Result<Vec<GraphEdge>, Error>

Source

fn nodes_by_kind(&self, kind: &str) -> Result<Vec<GraphNode>, Error>

Source

fn outgoing_edges( &self, from_id: &str, kind: Option<&str>, ) -> Result<Vec<GraphEdge>, Error>

Source

fn shortest_path( &self, from_id: &str, to_id: &str, kind: Option<&str>, ) -> Result<Option<GraphPath>, Error>

Provided Methods§

Source

fn edge(&self, edge_id: &str) -> Result<Option<GraphEdge>, Error>

Source

fn graph_counts(&self) -> Result<(usize, usize), Error>

Source

fn sample_edge(&self, kind: Option<&str>) -> Result<Option<GraphEdge>, Error>

Source

fn sample_edge_with_property( &self, ) -> Result<Option<(GraphEdge, GraphPropertyFilter)>, Error>

Source

fn incident_edges( &self, node_id: &str, kind: Option<&str>, ) -> Result<Vec<GraphEdge>, Error>

Source

fn paged_edges( &self, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error>

Source

fn paged_incident_edges( &self, node_id: &str, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error>

Source

fn edges_between_nodes( &self, node_ids: &BTreeSet<String>, ) -> Result<Vec<GraphEdge>, Error>

Source

fn shortest_path_with_max_hops( &self, from_id: &str, to_id: &str, kind: Option<&str>, max_hops: Option<usize>, ) -> Result<Option<GraphPath>, Error>

Source

fn neighborhood( &self, center_id: &str, depth: usize, kind: Option<&str>, ) -> Result<Option<GraphSubgraph>, Error>

Source

fn paged_nodes_by_kind( &self, kind: &str, options: GraphQueryOptions, ) -> Result<GraphPagedSubgraph, Error>

Source

fn paged_neighborhood( &self, center_id: &str, depth: usize, kind: Option<&str>, options: GraphQueryOptions, ) -> Result<Option<GraphPagedSubgraph>, Error>

Source

fn ranked_neighborhood( &self, center_id: &str, options: &RankedNeighborhoodOptions, ) -> Result<Option<RankedNeighborhoodResult>, Error>

Source

fn reachable_nodes_by_kind( &self, from_id: &str, kind: &str, depth: usize, limit: usize, ) -> Result<Vec<(GraphNode, GraphPath)>, Error>

Source

fn reachable_nodes_by_kinds( &self, from_id: &str, kinds: &[&str], depth: usize, limit: usize, ) -> Result<BTreeMap<String, Vec<(GraphNode, GraphPath)>>, Error>

Source

fn resolve_evidence_target( &self, target: &str, kinds: &[&str], ) -> Result<Option<GraphNode>, Error>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§