summaryrefslogtreecommitdiff
path: root/src/assemblage.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-09-21 02:33:19 +0200
committertroido <troido@protonmail.com>2020-09-21 02:33:19 +0200
commit5ce9b012a7987f4085057f4f0b0af35e76810a7a (patch)
treea99418b5aec06d6be28e22150bce85d3c40b8ee7 /src/assemblage.rs
parentb6a4c7b2d383755402e5e2c6f60d9a75a899b809 (diff)
parent455867294cc849bff2c0829a7464e71e79a0dcae (diff)
Merge branch 'interact' into master
Diffstat (limited to 'src/assemblage.rs')
-rw-r--r--src/assemblage.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/assemblage.rs b/src/assemblage.rs
index 2b60ea3..c706ed0 100644
--- a/src/assemblage.rs
+++ b/src/assemblage.rs
@@ -2,7 +2,7 @@
use std::collections::HashMap;
use serde_json::{Value, json, value};
use crate::{
- componentparameter::ComponentParameter,
+ parameterexpression::ParameterExpression,
parameter::{Parameter, ParameterType},
componentwrapper::{ComponentWrapper, ComponentType},
components::Serialise,
@@ -18,7 +18,7 @@ type ArgumentDef = (String, ParameterType, Option<Parameter>);
#[derive(Debug, PartialEq, Clone)]
pub struct Assemblage {
pub arguments: Vec<ArgumentDef>,
- pub components: Vec<(ComponentType, HashMap<String, ComponentParameter>)>,
+ pub components: Vec<(ComponentType, HashMap<String, ParameterExpression>)>,
pub save: bool,
pub extract: Vec<(String, ComponentType, String)>
}
@@ -37,7 +37,7 @@ impl Assemblage {
(
key.clone(),
typ,
- Some(Parameter::from_typed_json(typ, def).ok_or(perr!("invalid argument default {:?} {:?}", typ, def))?)
+ Some(Parameter::from_typed_json(typ, def)?)
)
);
} else {
@@ -47,7 +47,7 @@ impl Assemblage {
Ok(arguments)
}
- fn parse_definition_components(comps: &[Value]) -> PResult<Vec<(ComponentType, HashMap<String, ComponentParameter>)>> {
+ fn parse_definition_components(comps: &[Value]) -> PResult<Vec<(ComponentType, HashMap<String, ParameterExpression>)>> {
let mut components = Vec::new();
for tup in comps {
if let Some(name) = tup.as_str() {
@@ -55,9 +55,9 @@ impl Assemblage {
} else {
let (name, params) = value::from_value::<(String, HashMap<String, Value>)>(tup.clone()).map_err(|e| perr!("invalid component definition: {:?}", e))?;
let comptype = ComponentType::from_str(&name).ok_or(perr!("{} not a valid componenttype", name))?;
- let mut parameters: HashMap<String, ComponentParameter> = HashMap::new();
+ let mut parameters: HashMap<String, ParameterExpression> = HashMap::new();
for (key, value) in params.into_iter() {
- let param = ComponentParameter::from_json(&value)?;
+ let param = ParameterExpression::from_json(&value)?;
parameters.insert(key, param);
}
components.push((comptype, parameters));
@@ -227,9 +227,9 @@ mod tests {
arguments: vec![("sprite".to_string(), ParameterType::String, Some(Parameter::String("grass1".to_string())))],
components: vec![
(ComponentType::Visible, hashmap!(
- "sprite".to_string() => ComponentParameter::Argument("sprite".to_string()),
- "height".to_string() => ComponentParameter::Constant(Parameter::Float(0.1)),
- "name".to_string() => ComponentParameter::Constant(Parameter::String("grass".to_string()))
+ "sprite".to_string() => ParameterExpression::Argument("sprite".to_string()),
+ "height".to_string() => ParameterExpression::Constant(Parameter::Float(0.1)),
+ "name".to_string() => ParameterExpression::Constant(Parameter::String("grass".to_string()))
))
],
save: true,
@@ -346,9 +346,9 @@ mod tests {
arguments: vec![("sprite".to_string(), ParameterType::String, None)],
components: vec![
(ComponentType::Visible, hashmap!(
- "sprite".to_string() => ComponentParameter::Argument("sprite".to_string()),
- "height".to_string() => ComponentParameter::Constant(Parameter::Float(0.1)),
- "name".to_string() => ComponentParameter::Argument("sprite".to_string())
+ "sprite".to_string() => ParameterExpression::Argument("sprite".to_string()),
+ "height".to_string() => ParameterExpression::Constant(Parameter::Float(0.1)),
+ "name".to_string() => ParameterExpression::Argument("sprite".to_string())
))
],
save: true,