Skip to main content

find_patterns

Function find_patterns 

Source
pub fn find_patterns(
    graph: &CsrGraph,
    pattern: &Pattern,
) -> Result<Vec<PatternMatch>>
Expand description

Find all pattern matches in the graph

§Arguments

  • graph - The graph to search
  • pattern - The pattern to find

§Returns

Vector of pattern matches

§Errors

Returns error if pattern is malformed

§Example

let mut graph = CsrGraph::new();
// Create a 3-node cycle: 0 -> 1 -> 2 -> 0
graph.add_edge(NodeId(0), NodeId(1), 1.0).unwrap();
graph.add_edge(NodeId(1), NodeId(2), 1.0).unwrap();
graph.add_edge(NodeId(2), NodeId(0), 1.0).unwrap();

// Find circular dependencies of length 3
let pattern = Pattern::circular_dependency(3);
let matches = find_patterns(&graph, &pattern).unwrap();

assert_eq!(matches.len(), 1);