Skip to content
This repository was archived by the owner on Nov 24, 2023. It is now read-only.

Commit ae9b645

Browse files
authored
Merge pull request #193 from mitsuhiko/feature/difference-to-similar
Switch to similar from difference
2 parents acb86f9 + dfbce93 commit ae9b645

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ env_logger = "0.5.0-rc.1"
2929
log = "0.4.1"
3030
tempdir = "0.3.5"
3131
proptest = "0.7.0"
32-
difference = "2.0.0"
32+
similar = "0.4.0"
3333

3434
[workspace]

tests/parse_and_replace.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -97,29 +97,29 @@ fn read_file(path: &Path) -> Result<String, Error> {
9797
}
9898

9999
fn diff(expected: &str, actual: &str) -> String {
100-
use difference::{Changeset, Difference};
100+
use similar::text::{ChangeTag, TextDiff};
101101
use std::fmt::Write;
102102

103103
let mut res = String::new();
104-
let changeset = Changeset::new(expected.trim(), actual.trim(), "\n");
104+
let diff = TextDiff::from_lines(expected.trim(), actual.trim());
105105

106106
let mut different = false;
107-
for diff in changeset.diffs {
108-
let (prefix, diff) = match diff {
109-
Difference::Same(_) => continue,
110-
Difference::Add(add) => ("+", add),
111-
Difference::Rem(rem) => ("-", rem),
112-
};
113-
if !different {
114-
write!(
115-
&mut res,
116-
"differences found (+ == actual, - == expected):\n"
117-
)
118-
.unwrap();
119-
different = true;
120-
}
121-
for diff in diff.lines() {
122-
writeln!(&mut res, "{} {}", prefix, diff).unwrap();
107+
for op in diff.ops() {
108+
for change in diff.iter_changes(op) {
109+
let prefix = match change.tag() {
110+
ChangeTag::Equal => continue,
111+
ChangeTag::Insert => "+",
112+
ChangeTag::Delete => "-",
113+
};
114+
if !different {
115+
write!(
116+
&mut res,
117+
"differences found (+ == actual, - == expected):\n"
118+
)
119+
.unwrap();
120+
different = true;
121+
}
122+
write!(&mut res, "{} {}", prefix, change.value()).unwrap();
123123
}
124124
}
125125
if different {

0 commit comments

Comments
 (0)