|
|
@ -90,24 +90,35 @@ impl EngineOption { |
|
|
|
EngineOption { name, option_type, option_data, } |
|
|
|
EngineOption { name, option_type, option_data, } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fn engine_option_data_type_string(&t: EngineOptionDataType) -> String { |
|
|
|
|
|
|
|
match t { |
|
|
|
|
|
|
|
EngineOptionDataType::DefaultVal => String::new("default"), |
|
|
|
|
|
|
|
EngineOptionDataType::Min => String::new("min"), |
|
|
|
|
|
|
|
EngineOptionDataType::Max => String::new("max"), |
|
|
|
|
|
|
|
EngineOptionDataType::Var => String::new("var"), |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fn engine_option_data_string(&d: EngineOptionData) -> String { |
|
|
|
|
|
|
|
match eod { |
|
|
|
|
|
|
|
EngineOptionData::Int(v) => v.to_string(), |
|
|
|
|
|
|
|
EngineOptionData::Float(v) => v.to_string(), |
|
|
|
|
|
|
|
EngineOptionData::Text(ref v) => v.clone(), |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
pub fn option_string(&self) -> String { |
|
|
|
pub fn option_string(&self) -> String { |
|
|
|
let mut option_data_string: String = String::new(); |
|
|
|
let mut option_data_string: String = String::new(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// FIXME: Hash maps are iterated out of order (obviously). In order to guarantee order in the response it'll be
|
|
|
|
|
|
|
|
// Easier to test if the key exists (since there are only 3 of them ever), if it does, get the value with
|
|
|
|
|
|
|
|
// HashMap::Get, which returns a reference.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Test for the key with HashMap::contains_key. You'll have to match for each instance using the private
|
|
|
|
|
|
|
|
// functions above. You will _still_ need to build a string like you did before.
|
|
|
|
for (dt, eod) in self.option_data.iter() { |
|
|
|
for (dt, eod) in self.option_data.iter() { |
|
|
|
let _: (&EngineOptionDataType, &EngineOptionData) = (dt, eod); |
|
|
|
let _: (&EngineOptionDataType, &EngineOptionData) = (dt, eod); |
|
|
|
|
|
|
|
|
|
|
|
let dts = match dt { |
|
|
|
|
|
|
|
&EngineOptionDataType::DefaultVal => "default", |
|
|
|
|
|
|
|
&EngineOptionDataType::Min => "min", |
|
|
|
|
|
|
|
&EngineOptionDataType::Max => "max", |
|
|
|
|
|
|
|
&EngineOptionDataType::Var => "var", |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let res = match eod { |
|
|
|
|
|
|
|
&EngineOptionData::Int(v) => v.to_string(), |
|
|
|
|
|
|
|
&EngineOptionData::Float(v) => v.to_string(), |
|
|
|
|
|
|
|
&EngineOptionData::Text(ref v) => v.clone(), |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
option_data_string.push_str(&format!("{} {} ", dts, res)); |
|
|
|
option_data_string.push_str(&format!("{} {} ", dts, res)); |
|
|
|
} |
|
|
|
} |
|
|
|