From dce98d333a79a103e65697890f90303182028a2d Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Mon, 4 Apr 2022 10:35:51 -0400 Subject: [PATCH] improve HintEnum::to_string --- src/suggestions.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/suggestions.rs b/src/suggestions.rs index ea2c44f..cff5b4c 100644 --- a/src/suggestions.rs +++ b/src/suggestions.rs @@ -49,7 +49,22 @@ impl ToString for HintEnum<'static> { match self { HintEnum::Single(single_data) => single_data.to_string(), HintEnum::Many(multi_data) => { - multi_data.iter().map(|a| a.to_string()).collect::() + 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::>() + .concat() + "]" } HintEnum::None => String::new(), } @@ -110,7 +125,7 @@ mod tests { fn hint_test() { let values = HashMap::from([ ("", HintEnum::Single("x^2")), - ("si", HintEnum::Many(&["gnum(", "n(", "nh("])), + ("si", HintEnum::Many(&["n(", "nh(", "gnum("])), ("log", HintEnum::Many(&["2(", "10("])), ("cos", HintEnum::Many(&["(", "h("])), ("sin(", HintEnum::Single(")")),