@@ -59,24 +59,13 @@ where
5959
6060 // Method used to retrieve all the edges between an origin node and a target node.
6161 // Can be used to check if a node loops back to itself by enabling equiv
62- fn get_edge_between < G > (
63- orig_graph : G ,
64- origin : G :: NodeId ,
65- target : G :: NodeId ,
66- equiv : bool ,
67- ) -> Vec < G :: EdgeId >
62+ fn get_edge_between < G > ( orig_graph : G , origin : G :: NodeId , target : G :: NodeId ) -> Vec < G :: EdgeId >
6863 where
6964 G : IntoEdges ,
7065 {
7166 orig_graph
7267 . edges ( origin)
73- . filter ( |edge : & G :: EdgeRef | {
74- if equiv {
75- edge. source ( ) == target && edge. target ( ) == target
76- } else {
77- edge. target ( ) == target
78- }
79- } )
68+ . filter ( |edge : & G :: EdgeRef | edge. target ( ) == target)
8069 . map ( |edge : G :: EdgeRef | edge. id ( ) )
8170 . collect ( )
8271 }
10594 while !stack. is_empty ( ) {
10695 // Use the last element added so that cycles are easier to find
10796 let z = stack. pop ( ) . unwrap ( ) ;
108- // println!("Length of all edges from: {:?}", edges.len());
10997 for neighbor in graph. neighbors ( z) {
11098 // A new node was encountered:
11199 if !used. contains_key ( & neighbor) {
@@ -117,7 +105,7 @@ where
117105 // A self loop:
118106 } else if z == neighbor {
119107 if edges {
120- let cycle_edge: Vec < G :: EdgeId > = get_edge_between ( graph, z, z, true ) ;
108+ let cycle_edge: Vec < G :: EdgeId > = get_edge_between ( graph, z, z) ;
121109 cycles_edges. push ( cycle_edge) ;
122110 } else {
123111 let cycle: Vec < G :: NodeId > = vec ! [ z] ;
@@ -130,8 +118,7 @@ where
130118 if edges {
131119 let mut cycle: Vec < G :: EdgeId > = Vec :: new ( ) ;
132120 // Retreive all edges from z to neighbor.
133- let mut neigh_edge: Vec < G :: EdgeId > =
134- get_edge_between ( graph, z, neighbor, false ) ;
121+ let mut neigh_edge: Vec < G :: EdgeId > = get_edge_between ( graph, z, neighbor) ;
135122 // Append to cycle
136123 cycle. append ( & mut neigh_edge) ;
137124
@@ -141,7 +128,7 @@ where
141128 while !pn. contains ( p) {
142129 // Retrieve all edges from prev_p to p and vice versa
143130 let mut neigh_edge: Vec < G :: EdgeId > =
144- get_edge_between ( graph, * prev_p, * p, false ) ;
131+ get_edge_between ( graph, * prev_p, * p) ;
145132 // Append to cycle
146133 cycle. append ( & mut neigh_edge) ;
147134 // Update prev_p to p
@@ -150,12 +137,10 @@ where
150137 p = pred. get ( p) . unwrap ( ) ;
151138 }
152139 // When loop ends add remaining edges from prev_p to p.
153- let mut neigh_edge: Vec < G :: EdgeId > =
154- get_edge_between ( graph, * prev_p, * p, false ) ;
140+ let mut neigh_edge: Vec < G :: EdgeId > = get_edge_between ( graph, * prev_p, * p) ;
155141 cycle. append ( & mut neigh_edge) ;
156142 // Also retreive all edges between the last p and neighbor
157- let mut neigh_edge: Vec < G :: EdgeId > =
158- get_edge_between ( graph, * p, neighbor, false ) ;
143+ let mut neigh_edge: Vec < G :: EdgeId > = get_edge_between ( graph, * p, neighbor) ;
159144 cycle. append ( & mut neigh_edge) ;
160145 // Once all edges within cycle have been found, push to cycle list.
161146 cycles_edges. push ( cycle) ;
0 commit comments