summaryrefslogtreecommitdiff
path: root/graph/src
diff options
context:
space:
mode:
Diffstat (limited to 'graph/src')
-rw-r--r--graph/src/adlist.rs8
-rw-r--r--graph/src/labelled.rs2
2 files changed, 9 insertions, 1 deletions
diff --git a/graph/src/adlist.rs b/graph/src/adlist.rs
index c16ceb2..18ad770 100644
--- a/graph/src/adlist.rs
+++ b/graph/src/adlist.rs
@@ -102,6 +102,14 @@ impl ExtGraph for ALGraph {
}
}
+// TODO: Add a way to build a graph by its raw adjacency list representation.
+impl From<Vec<Vec<usize>>> for ALGraph {
+ fn from(adlist: Vec<Vec<usize>>) -> Self {
+ let nodes: Vec<ALNode> = adlist.iter().cloned().map(ALNode::new).collect();
+ Self { nodes }
+ }
+}
+
#[cfg(test)]
mod algraph_test {
use super::*;
diff --git a/graph/src/labelled.rs b/graph/src/labelled.rs
index 1cb2461..d02e301 100644
--- a/graph/src/labelled.rs
+++ b/graph/src/labelled.rs
@@ -144,7 +144,7 @@ impl<'a> Iterator for LabelIndexIter<'a> {
#[inline]
fn next(&mut self) -> Option<Self::Item> {
- self.iter.as_mut().map(|iterator| iterator.next()).flatten()
+ self.iter.as_mut().and_then(|iterator| iterator.next())
}
#[inline]