MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / iter_adjacent

Method iter_adjacent

atomic-core/src/pristine/traits/tests/graph_tests.rs:49–67  ·  view source on GitHub ↗
(
        &self,
        node: GraphNode<NodeId>,
        min_flag: EdgeFlags,
        max_flag: EdgeFlags,
    )

Source from the content-addressed store, hash-verified

47 }
48
49 fn iter_adjacent(
50 &self,
51 node: GraphNode<NodeId>,
52 min_flag: EdgeFlags,
53 max_flag: EdgeFlags,
54 ) -> Result<Self::Adj, PristineError> {
55 let edges: Vec<Result<SerializedGraphEdge, PristineError>> = self
56 .edges
57 .iter()
58 .filter(|(n, _)| *n == node)
59 .map(|(_, e)| *e)
60 .filter(|e| {
61 let flag = e.flag();
62 flag >= min_flag && flag <= max_flag
63 })
64 .map(Ok)
65 .collect();
66 Ok(edges.into_iter())
67 }
68
69 fn find_block(&self, _pos: Position<NodeId>) -> Result<GraphNode<NodeId>, PristineError> {
70 Err(PristineError::BlockNotFound { change: 0, pos: 0 })

Callers 4

get_edgesMethod · 0.45
iter_forwardMethod · 0.45
iter_parentsMethod · 0.45

Calls 3

flagMethod · 0.80
iterMethod · 0.45
into_iterMethod · 0.45

Tested by

no test coverage detected