diff options
Diffstat (limited to 'src/parameterexpression.rs')
| -rw-r--r-- | src/parameterexpression.rs | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/src/parameterexpression.rs b/src/parameterexpression.rs index b111669..c96bd93 100644 --- a/src/parameterexpression.rs +++ b/src/parameterexpression.rs @@ -3,11 +3,9 @@ use std::collections::HashMap; use rand::Rng; use serde::{Serialize, Deserialize, Deserializer, Serializer}; use crate::{ - parameter::{Parameter, ParameterType}, + parameter::Parameter, Template, - template::{EntityType}, - Result as AnyResult, - aerr, + template::{EntityType} }; const MAX_NESTING: usize = 5; @@ -91,38 +89,6 @@ impl ParameterExpression { } } - - #[allow(dead_code)] - pub fn get_type(&self, arguments: &[(String, ParameterType, Option<Parameter>)]) -> AnyResult<ParameterType>{ - Ok(match self { - Self::Constant(param) => param.paramtype(), - Self::List(_) => ParameterType::List, - Self::Template{name: _, kwargs: _, save: _, clan: _} => ParameterType::Template, - Self::Argument(argname) => arguments.iter().find(|(n, _t, _d)| n == argname).ok_or(aerr!("unknown argument name {} in {:?}", argname, arguments))?.1, - Self::Random(options) => { - let typ: ParameterType = options.get(0).ok_or(aerr!("random has no options"))?.get_type(arguments)?; - for param in options { - if param.get_type(arguments)? != typ { - return Err(aerr!("inconsistent parameter types in random")); - } - } - typ - }, - Self::If(condition, thenval, elseval) => { - if condition.get_type(arguments)? != ParameterType::Bool { - return Err(aerr!("if condition is not a bool")); - } - let typ: ParameterType = thenval.get_type(arguments)?; - if elseval.get_type(arguments)? != typ { - return Err(aerr!("inconsistent parameter types in if")); - } - typ - }, - Self::Concat(_s) => ParameterType::String, - Self::TemplateSelf => ParameterType::Template, - Self::TemplateName => ParameterType::String - }) - } } |
