improve HintEnum::to_string

This commit is contained in:
Simon Gardling 2022-04-04 10:35:51 -04:00
parent 3774d280bd
commit dce98d333a

View File

@ -49,7 +49,22 @@ impl ToString for HintEnum<'static> {
match self { match self {
HintEnum::Single(single_data) => single_data.to_string(), HintEnum::Single(single_data) => single_data.to_string(),
HintEnum::Many(multi_data) => { HintEnum::Many(multi_data) => {
multi_data.iter().map(|a| a.to_string()).collect::<String>() let max_i: i32 = (multi_data.len() as i32) - 1;
"[".to_owned()
+ &multi_data
.iter()
.enumerate()
.map(|(i, x)| {
let mut tmp = r#"""#.to_string() + x + r#"""#;
// Add comma and space if needed
if max_i > i as i32 {
tmp += ", ";
}
tmp
})
.collect::<Vec<String>>()
.concat() + "]"
} }
HintEnum::None => String::new(), HintEnum::None => String::new(),
} }
@ -110,7 +125,7 @@ mod tests {
fn hint_test() { fn hint_test() {
let values = HashMap::from([ let values = HashMap::from([
("", HintEnum::Single("x^2")), ("", HintEnum::Single("x^2")),
("si", HintEnum::Many(&["gnum(", "n(", "nh("])), ("si", HintEnum::Many(&["n(", "nh(", "gnum("])),
("log", HintEnum::Many(&["2(", "10("])), ("log", HintEnum::Many(&["2(", "10("])),
("cos", HintEnum::Many(&["(", "h("])), ("cos", HintEnum::Many(&["(", "h("])),
("sin(", HintEnum::Single(")")), ("sin(", HintEnum::Single(")")),