pub trait GraphBackend {
type Error: Error + Send + Sync + 'static;
// Required methods
fn init(&mut self) -> Result<(), Self::Error>;
fn write_nodes(&mut self, nodes: &[Node]) -> Result<(), Self::Error>;
fn write_edges(&mut self, edges: &[Edge]) -> Result<(), Self::Error>;
fn read_nodes(&self) -> Result<Vec<Node>, Self::Error>;
fn read_edges(&self) -> Result<Vec<Edge>, Self::Error>;
fn find_nodes_by_type(
&self,
kind: NodeType,
) -> Result<Vec<Node>, Self::Error>;
fn neighbors(
&self,
node_id: &str,
edge_type: Option<EdgeType>,
) -> Result<Vec<Edge>, Self::Error>;
fn clear(&mut self) -> Result<(), Self::Error>;
}Expand description
Abstract storage backend for graph operations.
Required Associated Types§
Required Methods§
Sourcefn init(&mut self) -> Result<(), Self::Error>
fn init(&mut self) -> Result<(), Self::Error>
Initialize the backend (create tables/files, run migrations).
Sourcefn find_nodes_by_type(&self, kind: NodeType) -> Result<Vec<Node>, Self::Error>
fn find_nodes_by_type(&self, kind: NodeType) -> Result<Vec<Node>, Self::Error>
Find nodes by type.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".