FIX: Simplify code in EdgeFilteredNeighborsDirected
Remove equivalent branch, remove unused struct field.
diff --git a/src/visit/filter.rs b/src/visit/filter.rs
index 271369c..cb64c79 100644
--- a/src/visit/filter.rs
+++ b/src/visit/filter.rs
@@ -348,7 +348,6 @@
EdgeFilteredNeighborsDirected {
iter: self.0.edges_directed(n, dir),
f: &self.1,
- dir: dir,
from: n,
}
}
@@ -433,7 +432,6 @@
{
iter: G::EdgesDirected,
f: &'a F,
- dir: Direction,
from: G::NodeId,
}
@@ -445,18 +443,14 @@
type Item = G::NodeId;
fn next(&mut self) -> Option<Self::Item> {
let f = self.f;
- let dir = self.dir;
let from = self.from;
(&mut self.iter)
.filter_map(move |edge| {
if f.include_edge(edge) {
if edge.source() != from {
Some(edge.source())
- } else if edge.target() != from {
- Some(edge.target())
} else {
- // source == target
- Some(from)
+ Some(edge.target()) // includes case where from == source == target
}
} else {
None