diff options
Diffstat (limited to 'src/step.rs')
-rw-r--r-- | src/step.rs | 15 |
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 |