@@ -97,29 +97,29 @@ fn read_file(path: &Path) -> Result<String, Error> {
97
97
}
98
98
99
99
fn diff ( expected : & str , actual : & str ) -> String {
100
- use difference :: { Changeset , Difference } ;
100
+ use similar :: text :: { ChangeTag , TextDiff } ;
101
101
use std:: fmt:: Write ;
102
102
103
103
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 ( ) ) ;
105
105
106
106
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 ( ) ;
123
123
}
124
124
}
125
125
if different {
0 commit comments