use colored::*;
use difference;
pub fn text(expected: &str, actual: &str) -> (String, String, String) {
let expected = format!("{:?}", expected);
let expected = &expected[1..expected.len() - 1];
let actual = format!("{:?}", actual);
let actual = &actual[1..actual.len() - 1];
let diff = difference::diff(expected, actual, " ").1.into_iter().map(|diff| {
match diff {
difference::Difference::Same(s) => s,
difference::Difference::Rem(s) => s.white().on_red().bold().to_string(),
difference::Difference::Add(s) => s.white().on_green().bold().to_string()
}
}).filter(|s| !s.is_empty()).collect::<Vec<String>>().join(" ");
(expected.to_string(), actual.to_string(), diff)
}