@@ -111,6 +111,8 @@ fn make_diff(expected: &[u8], actual: &[u8]) -> Vec<Mismatch> {
111111
112112#[ must_use]
113113pub fn diff ( expected : & [ u8 ] , actual : & [ u8 ] ) -> Vec < u8 > {
114+ // See https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Normal.html
115+ // for details on the syntax of the normal format.
114116 let mut output = Vec :: new ( ) ;
115117 let diff_results = make_diff ( expected, actual) ;
116118 for result in diff_results {
@@ -121,6 +123,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
121123 match ( expected_count, actual_count) {
122124 ( 0 , 0 ) => unreachable ! ( ) ,
123125 ( 0 , _) => writeln ! (
126+ // 'a' stands for "Add lines"
124127 & mut output,
125128 "{}a{},{}" ,
126129 line_number_expected - 1 ,
@@ -129,6 +132,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
129132 )
130133 . unwrap ( ) ,
131134 ( _, 0 ) => writeln ! (
135+ // 'd' stands for "Delete lines"
132136 & mut output,
133137 "{},{}d{}" ,
134138 line_number_expected,
@@ -137,12 +141,16 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
137141 )
138142 . unwrap ( ) ,
139143 ( 1 , 1 ) => writeln ! (
144+ // 'c' stands for "Change lines"
145+ // exactly one line replaced by one line
140146 & mut output,
141147 "{}c{}" ,
142- line_number_expected, line_number_actual
148+ line_number_expected,
149+ line_number_actual
143150 )
144151 . unwrap ( ) ,
145152 ( 1 , _) => writeln ! (
153+ // one line replaced by multiple lines
146154 & mut output,
147155 "{}c{},{}" ,
148156 line_number_expected,
@@ -151,6 +159,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
151159 )
152160 . unwrap ( ) ,
153161 ( _, 1 ) => writeln ! (
162+ // multiple lines replaced by one line
154163 & mut output,
155164 "{},{}c{}" ,
156165 line_number_expected,
@@ -159,6 +168,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
159168 )
160169 . unwrap ( ) ,
161170 _ => writeln ! (
171+ // general case: multiple lines replaced by multiple lines
162172 & mut output,
163173 "{},{}c{},{}" ,
164174 line_number_expected,
0 commit comments