pub trait GraphBackend: Send + Sync {
// Required methods
fn add_node(&mut self, node: GraphNode) -> Result<(), CodememError>;
fn get_node(&self, id: &str) -> Result<Option<GraphNode>, CodememError>;
fn remove_node(&mut self, id: &str) -> Result<bool, CodememError>;
fn add_edge(&mut self, edge: Edge) -> Result<(), CodememError>;
fn get_edges(&self, node_id: &str) -> Result<Vec<Edge>, CodememError>;
fn remove_edge(&mut self, id: &str) -> Result<bool, CodememError>;
fn bfs(
&self,
start_id: &str,
max_depth: usize,
) -> Result<Vec<GraphNode>, CodememError>;
fn dfs(
&self,
start_id: &str,
max_depth: usize,
) -> Result<Vec<GraphNode>, CodememError>;
fn shortest_path(
&self,
from: &str,
to: &str,
) -> Result<Vec<String>, CodememError>;
fn stats(&self) -> GraphStats;
}Expand description
Graph backend trait for graph operations.
Required Methods§
Sourcefn remove_node(&mut self, id: &str) -> Result<bool, CodememError>
fn remove_node(&mut self, id: &str) -> Result<bool, CodememError>
Remove a node by ID.
Sourcefn remove_edge(&mut self, id: &str) -> Result<bool, CodememError>
fn remove_edge(&mut self, id: &str) -> Result<bool, CodememError>
Remove an edge by ID.
Sourcefn bfs(
&self,
start_id: &str,
max_depth: usize,
) -> Result<Vec<GraphNode>, CodememError>
fn bfs( &self, start_id: &str, max_depth: usize, ) -> Result<Vec<GraphNode>, CodememError>
BFS traversal from a start node up to max_depth.
Sourcefn dfs(
&self,
start_id: &str,
max_depth: usize,
) -> Result<Vec<GraphNode>, CodememError>
fn dfs( &self, start_id: &str, max_depth: usize, ) -> Result<Vec<GraphNode>, CodememError>
DFS traversal from a start node up to max_depth.
Sourcefn shortest_path(
&self,
from: &str,
to: &str,
) -> Result<Vec<String>, CodememError>
fn shortest_path( &self, from: &str, to: &str, ) -> Result<Vec<String>, CodememError>
Shortest path between two nodes.
Sourcefn stats(&self) -> GraphStats
fn stats(&self) -> GraphStats
Get graph statistics.