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§
Sourcefn neighbors(
&self,
node: EntityId,
direction: Direction,
) -> GraphAccessResult<Vec<NeighborResult>>
fn neighbors( &self, node: EntityId, direction: Direction, ) -> GraphAccessResult<Vec<NeighborResult>>
Get neighbors of a node in the specified direction.
Returns immediate neighbors (single hop).
Sourcefn neighbors_by_type(
&self,
node: EntityId,
direction: Direction,
edge_type: &EdgeType,
) -> GraphAccessResult<Vec<NeighborResult>>
fn neighbors_by_type( &self, node: EntityId, direction: Direction, edge_type: &EdgeType, ) -> GraphAccessResult<Vec<NeighborResult>>
Get neighbors filtered by edge type.
Sourcefn neighbors_by_types(
&self,
node: EntityId,
direction: Direction,
edge_types: &[EdgeType],
) -> GraphAccessResult<Vec<NeighborResult>>
fn neighbors_by_types( &self, node: EntityId, direction: Direction, edge_types: &[EdgeType], ) -> GraphAccessResult<Vec<NeighborResult>>
Get neighbors filtered by multiple edge types.
Sourcefn expand_all(
&self,
node: EntityId,
direction: Direction,
min_depth: usize,
max_depth: Option<usize>,
edge_types: Option<&[EdgeType]>,
) -> GraphAccessResult<Vec<TraversalResult>>
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.
Sourcefn find_paths(
&self,
start: EntityId,
config: &PathFindConfig,
) -> GraphAccessResult<Vec<PathMatchResult>>
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.