| use console::Style; |
| use similar::{ChangeTag, TextDiff}; |
| |
| fn main() { |
| let diff = TextDiff::from_lines( |
| "Hello World\nThis is the second line.\nThis is the third.", |
| "Hallo Welt\nThis is the second line.\nThis is life.\nMoar and more", |
| ); |
| |
| for op in diff.ops() { |
| for change in diff.iter_changes(op) { |
| let (sign, style) = match change.tag() { |
| ChangeTag::Delete => ("-", Style::new().red()), |
| ChangeTag::Insert => ("+", Style::new().green()), |
| ChangeTag::Equal => (" ", Style::new()), |
| }; |
| print!("{}{}", style.apply_to(sign).bold(), style.apply_to(change)); |
| } |
| } |
| } |