Add support for byte diffing (#7)

Restructured text diffing to also support bstr
This commit is contained in:
Armin Ronacher 2021-02-02 14:16:00 +01:00 committed by GitHub
parent e53427b56f
commit 4b85e70f91
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 775 additions and 307 deletions

View file

@ -1,5 +1,5 @@
use std::fmt;
use std::fs::read_to_string;
use std::fs::read;
use std::process::exit;
use console::{style, Style};
@ -23,8 +23,8 @@ fn main() {
exit(1);
}
let old = read_to_string(&args[1]).unwrap();
let new = read_to_string(&args[2]).unwrap();
let old = read(&args[1]).unwrap();
let new = read(&args[2]).unwrap();
let diff = TextDiff::from_lines(&old, &new);
for (idx, group) in diff.grouped_ops(3).iter().enumerate() {
@ -44,7 +44,7 @@ fn main() {
style(Line(change.new_index())).dim(),
s.apply_to(sign).bold(),
);
for &(emphasized, value) in change.values() {
for (emphasized, value) in change.iter_strings() {
if emphasized {
print!("{}", s.apply_to(value).underlined().on_black());
} else {

View file

@ -14,7 +14,7 @@ fn main() {
ChangeTag::Insert => ("+", Style::new().green()),
ChangeTag::Equal => (" ", Style::new()),
};
print!("{}{}", style.apply_to(sign).bold(), style.apply_to(change),);
print!("{}{}", style.apply_to(sign).bold(), style.apply_to(change));
}
}
}

View file

@ -1,4 +1,5 @@
use std::fs::read_to_string;
use std::fs::read;
use std::io;
use std::process::exit;
use similar::text::TextDiff;
@ -10,13 +11,14 @@ fn main() {
exit(1);
}
let old = read_to_string(&args[1]).unwrap();
let new = read_to_string(&args[2]).unwrap();
print!(
"{}",
TextDiff::from_lines(&old, &new).unified_diff().header(
let old = read(&args[1]).unwrap();
let new = read(&args[2]).unwrap();
TextDiff::from_lines(&old, &new)
.unified_diff()
.header(
&args[1].as_os_str().to_string_lossy(),
&args[2].as_os_str().to_string_lossy()
&args[2].as_os_str().to_string_lossy(),
)
);
.to_writer(io::stdout())
.unwrap();
}