pub trait GraphExecutor: Send + Sync {
// Required methods
fn bfs(
&self,
start: NodeId,
edge_types: Option<&[EdgeType]>,
direction: Direction,
min_depth: u32,
max_depth: u32,
snapshot: SnapshotId,
) -> Result<TraversalResult>;
fn neighbors(
&self,
node: NodeId,
edge_types: Option<&[EdgeType]>,
direction: Direction,
snapshot: SnapshotId,
) -> Result<Vec<(NodeId, EdgeType, HashMap<String, Value>)>>;
fn insert_edge(
&self,
tx: TxId,
source: NodeId,
target: NodeId,
edge_type: EdgeType,
properties: HashMap<String, Value>,
) -> Result<bool>;
fn delete_edge(
&self,
tx: TxId,
source: NodeId,
target: NodeId,
edge_type: &str,
) -> Result<()>;
}Required Methods§
fn bfs( &self, start: NodeId, edge_types: Option<&[EdgeType]>, direction: Direction, min_depth: u32, max_depth: u32, snapshot: SnapshotId, ) -> Result<TraversalResult>
fn neighbors( &self, node: NodeId, edge_types: Option<&[EdgeType]>, direction: Direction, snapshot: SnapshotId, ) -> Result<Vec<(NodeId, EdgeType, HashMap<String, Value>)>>
fn insert_edge( &self, tx: TxId, source: NodeId, target: NodeId, edge_type: EdgeType, properties: HashMap<String, Value>, ) -> Result<bool>
fn delete_edge( &self, tx: TxId, source: NodeId, target: NodeId, edge_type: &str, ) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".