summaryrefslogtreecommitdiff
path: root/src/parameterexpression.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-09-28 14:29:53 +0200
committertroido <troido@protonmail.com>2020-09-28 14:29:53 +0200
commiteb9853dec24045adb7447e1c8ac186e52204b690 (patch)
tree7fb944311d64ca5a8ff41748fbd5209a2eaf9806 /src/parameterexpression.rs
parent25abc71200803f7238c56c93b8b89160ff6c1086 (diff)
removed parametertype
Diffstat (limited to 'src/parameterexpression.rs')
-rw-r--r--src/parameterexpression.rs38
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
- })
- }
}