Skip to content

Commit

Permalink
Fixes #18119: refactoring DSC generator
Browse files Browse the repository at this point in the history
  • Loading branch information
gpoblon committed Aug 21, 2020
1 parent e2e20f3 commit dcf0a66
Show file tree
Hide file tree
Showing 7 changed files with 1,142 additions and 414 deletions.
24 changes: 24 additions & 0 deletions rudder-lang/src/ast/resource.rs
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,30 @@ impl<'src> StateDef<'src> {
}),
)
}

pub fn class_parameter_index(&self, method_name: &str) -> Result<usize> {
match self.metadata.get("class_parameter_index") {
Some(TomlValue::Integer(n)) => Ok(*n as usize),
Some(_) => Err(Error::new(format!("Expected 'class_parameter_index' metadata to be a number for '{}' method", method_name))),
None => Err(Error::new(format!("Expected 'class_parameter_index' metadata for '{}' method", method_name))),
}
}

pub fn supported_formats(&self, method_name: &str) -> Result<Vec<String>> {
match self.metadata.get("supported_targets") {
Some(TomlValue::Array(parameters)) => parameters
.iter()
.map(|p| match p {
TomlValue::String(s) => Ok(s.to_owned()),
_ => Err(Error::new(
format!("Expected 'supported_targets' metadata elements to be strings for '{}' method", method_name),
))
})
.collect::<Result<Vec<String>>>(),
Some(_) => Err(Error::new(format!("Expected 'supported_targets' metadata to be an array for '{}' method", method_name))),
None => Err(Error::new(format!("Expected 'supported_targets' metadata for '{}' method", method_name)))
}
}
}

/// A single parameter for a resource or a state
Expand Down
Loading

0 comments on commit dcf0a66

Please sign in to comment.