summaryrefslogtreecommitdiff
path: root/src/step.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/step.rs')
-rw-r--r--src/step.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/step.rs b/src/step.rs
index 92b8eec..c37994a 100644
--- a/src/step.rs
+++ b/src/step.rs
@@ -1,4 +1,5 @@
use super::Status;
+use serde::Deserialize;
use std::fmt;
/// A roadmap step.
@@ -6,11 +7,16 @@ use std::fmt;
/// See the crate documentation for an example. You
/// probably don't want to create steps manually, but via the roadmap
/// YAML parsing function.
-#[derive(Clone, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug, PartialEq, Eq, Deserialize)]
+#[serde(deny_unknown_fields)]
pub struct Step {
+ #[serde(skip)]
name: String,
- status: Status,
+ #[serde(default)]
label: String,
+ #[serde(default)]
+ status: Status,
+ #[serde(default)]
depends: Vec<String>,
}
@@ -25,6 +31,11 @@ impl Step {
}
}
+ /// Set the name of a step.
+ pub fn set_name(&mut self, name: &str) {
+ self.name = name.to_string();
+ }
+
/// Return the name of a step.
pub fn name(&self) -> &str {
&self.name