StorageBackend

Trait StorageBackend 

Source
pub trait StorageBackend: Send + Sync {
    // Required methods
    fn store_node(&self, node: &Node) -> Result<()>;
    fn get_node(&self, id: &NodeId) -> Result<Option<Node>>;
    fn delete_node(&self, id: &NodeId) -> Result<()>;
    fn store_edge(&self, edge: &Edge) -> Result<()>;
    fn get_edge(&self, id: &EdgeId) -> Result<Option<Edge>>;
    fn delete_edge(&self, id: &EdgeId) -> Result<()>;
    fn get_session_nodes(&self, session_id: &SessionId) -> Result<Vec<Node>>;
    fn get_outgoing_edges(&self, node_id: &NodeId) -> Result<Vec<Edge>>;
    fn get_incoming_edges(&self, node_id: &NodeId) -> Result<Vec<Edge>>;
    fn flush(&self) -> Result<()>;
    fn stats(&self) -> Result<StorageStats>;
}
Expand description

Trait defining storage backend operations

Required Methods§

Source

fn store_node(&self, node: &Node) -> Result<()>

Store a node in the backend

Source

fn get_node(&self, id: &NodeId) -> Result<Option<Node>>

Retrieve a node by ID

Source

fn delete_node(&self, id: &NodeId) -> Result<()>

Delete a node

Source

fn store_edge(&self, edge: &Edge) -> Result<()>

Store an edge

Source

fn get_edge(&self, id: &EdgeId) -> Result<Option<Edge>>

Retrieve an edge by ID

Source

fn delete_edge(&self, id: &EdgeId) -> Result<()>

Delete an edge

Source

fn get_session_nodes(&self, session_id: &SessionId) -> Result<Vec<Node>>

Get all nodes in a session

Source

fn get_outgoing_edges(&self, node_id: &NodeId) -> Result<Vec<Edge>>

Get all edges from a node

Source

fn get_incoming_edges(&self, node_id: &NodeId) -> Result<Vec<Edge>>

Get all edges to a node

Source

fn flush(&self) -> Result<()>

Flush any pending writes

Source

fn stats(&self) -> Result<StorageStats>

Get storage statistics

Implementors§