GraphAccessor

Trait GraphAccessor 

Source
pub trait GraphAccessor: Send + Sync {
    // Required methods
    fn neighbors(
        &self,
        node: EntityId,
        direction: Direction,
    ) -> GraphAccessResult<Vec<NeighborResult>>;
    fn neighbors_by_type(
        &self,
        node: EntityId,
        direction: Direction,
        edge_type: &EdgeType,
    ) -> GraphAccessResult<Vec<NeighborResult>>;
    fn neighbors_by_types(
        &self,
        node: EntityId,
        direction: Direction,
        edge_types: &[EdgeType],
    ) -> GraphAccessResult<Vec<NeighborResult>>;
    fn expand_all(
        &self,
        node: EntityId,
        direction: Direction,
        min_depth: usize,
        max_depth: Option<usize>,
        edge_types: Option<&[EdgeType]>,
    ) -> GraphAccessResult<Vec<TraversalResult>>;
    fn find_paths(
        &self,
        start: EntityId,
        config: &PathFindConfig,
    ) -> GraphAccessResult<Vec<PathMatchResult>>;
}
Expand description

A trait for accessing graph storage during query execution.

This trait is object-safe and provides the graph operations needed by the query executor. It abstracts over the actual storage transaction type.

Required Methods§

Source

fn neighbors( &self, node: EntityId, direction: Direction, ) -> GraphAccessResult<Vec<NeighborResult>>

Get neighbors of a node in the specified direction.

Returns immediate neighbors (single hop).

Source

fn neighbors_by_type( &self, node: EntityId, direction: Direction, edge_type: &EdgeType, ) -> GraphAccessResult<Vec<NeighborResult>>

Get neighbors filtered by edge type.

Source

fn neighbors_by_types( &self, node: EntityId, direction: Direction, edge_types: &[EdgeType], ) -> GraphAccessResult<Vec<NeighborResult>>

Get neighbors filtered by multiple edge types.

Source

fn expand_all( &self, node: EntityId, direction: Direction, min_depth: usize, max_depth: Option<usize>, edge_types: Option<&[EdgeType]>, ) -> GraphAccessResult<Vec<TraversalResult>>

Perform multi-hop expansion from a node.

Returns all nodes reachable within the depth range.

Source

fn find_paths( &self, start: EntityId, config: &PathFindConfig, ) -> GraphAccessResult<Vec<PathMatchResult>>

Find paths matching a pattern from a starting node.

Executes multi-hop path patterns with support for variable-length steps.

Implementors§