Trait GraphStorage

Source
pub trait GraphStorage: Send + Sync {
    // Required methods
    fn store_graph<'life0, 'life1, 'async_trait>(
        &'life0 self,
        graph: &'life1 SerializableGraph,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn load_graph<'life0, 'life1, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<SerializableGraph>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn update_nodes<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
        nodes: &'life2 [SerializableNode],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn update_edges<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
        edges: &'life2 [SerializableEdge],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn delete_nodes<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
        node_ids: &'life2 [String],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn delete_edges<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
        edge_refs: &'life2 [EdgeReference],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_graph_metadata<'life0, 'life1, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<GraphMetadata>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn update_graph_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
        metadata: &'life2 GraphMetadata,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn list_repositories<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn delete_graph<'life0, 'life1, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn graph_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        repo_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

Core storage trait for code graphs

Required Methods§

Source

fn store_graph<'life0, 'life1, 'async_trait>( &'life0 self, graph: &'life1 SerializableGraph, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Store a complete code graph

Source

fn load_graph<'life0, 'life1, 'async_trait>( &'life0 self, repo_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<SerializableGraph>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Load a code graph by repository ID

Source

fn update_nodes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repo_id: &'life1 str, nodes: &'life2 [SerializableNode], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Update specific nodes in the graph

Source

fn update_edges<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repo_id: &'life1 str, edges: &'life2 [SerializableEdge], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Update specific edges in the graph

Source

fn delete_nodes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repo_id: &'life1 str, node_ids: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Delete nodes by IDs

Source

fn delete_edges<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repo_id: &'life1 str, edge_refs: &'life2 [EdgeReference], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Delete edges by source and target

Source

fn get_graph_metadata<'life0, 'life1, 'async_trait>( &'life0 self, repo_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<GraphMetadata>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get graph metadata

Source

fn update_graph_metadata<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repo_id: &'life1 str, metadata: &'life2 GraphMetadata, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Update graph metadata

Source

fn list_repositories<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List all stored repositories

Source

fn delete_graph<'life0, 'life1, 'async_trait>( &'life0 self, repo_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete entire graph for a repository

Source

fn graph_exists<'life0, 'life1, 'async_trait>( &'life0 self, repo_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check if a graph exists

Implementors§