summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-09-20 09:10:13 +0300
committerLars Wirzenius <liw@liw.fi>2019-09-20 09:10:13 +0300
commitc0e0cc59b59d18b7304b616ad2805975469a40db (patch)
tree0d7b4c09ade12d8dbb7689556f77e016f7609385 /src
parent699915a71d5ff173427b7510fd8fdea24b637b6a (diff)
downloadroadmap-c0e0cc59b59d18b7304b616ad2805975469a40db.tar.gz
Add: itertors over steps
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 38577d6..c73dde5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -119,6 +119,16 @@ impl Roadmap {
Ok(())
}
+ // Get iterator over refs to steps.
+ pub fn iter(&self) -> impl Iterator<Item=&Step> {
+ self.steps.iter()
+ }
+
+ // Get iterator over mut refs to steps.
+ pub fn iter_mut(&mut self) -> impl Iterator<Item=&mut Step> {
+ self.steps.iter_mut()
+ }
+
/// Get a Graphviz dot language representation of a roadmap. This
/// is the textual representation, and the caller needs to use the
/// Graphviz dot(1) tool to create an image from it.
@@ -133,7 +143,7 @@ impl Roadmap {
dot.push_str(&line);
}
- for step in self.steps.iter() {
+ for step in self.iter() {
for dep in step.dependencies() {
let line = format!("{} -> {};\n", dep, step.name());
dot.push_str(&line);