Skip to main content

GraphBackend

Trait GraphBackend 

Source
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§

Source

type Error: Error + Send + Sync + 'static

Error type returned by this backend.

Required Methods§

Source

fn init(&mut self) -> Result<(), Self::Error>

Initialize the backend (create tables/files, run migrations).

Source

fn write_nodes(&mut self, nodes: &[Node]) -> Result<(), Self::Error>

Persist a batch of nodes.

Source

fn write_edges(&mut self, edges: &[Edge]) -> Result<(), Self::Error>

Persist a batch of edges.

Source

fn read_nodes(&self) -> Result<Vec<Node>, Self::Error>

Read all nodes.

Source

fn read_edges(&self) -> Result<Vec<Edge>, Self::Error>

Read all edges.

Source

fn find_nodes_by_type(&self, kind: NodeType) -> Result<Vec<Node>, Self::Error>

Find nodes by type.

Source

fn neighbors( &self, node_id: &str, edge_type: Option<EdgeType>, ) -> Result<Vec<Edge>, Self::Error>

Find outgoing edges from a node, optionally filtered by edge type.

Source

fn clear(&mut self) -> Result<(), Self::Error>

Clear all data.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§