Skip to content

Commit fe5ec13

Browse files
committed
Clean up language for more consistency
1 parent 6eb1f5c commit fe5ec13

File tree

1 file changed

+58
-52
lines changed

1 file changed

+58
-52
lines changed

src/lib.rs

Lines changed: 58 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,31 @@ use std::io::Write;
55
pub enum DiffLine {
66
Context(Vec<u8>),
77
Expected(Vec<u8>),
8-
Resulting(Vec<u8>),
8+
Actual(Vec<u8>),
99
MissingNL,
1010
}
1111

1212
#[derive(Debug, PartialEq)]
1313
struct Mismatch {
14-
pub line_number: u32,
15-
pub line_number_resulting: u32,
14+
pub line_number_expected: u32,
15+
pub line_number_actual: u32,
1616
pub lines: Vec<DiffLine>,
1717
}
1818

1919
impl Mismatch {
20-
fn new(line_number: u32, line_number_resulting: u32) -> Mismatch {
20+
fn new(line_number_expected: u32, line_number_actual: u32) -> Mismatch {
2121
Mismatch {
22-
line_number,
23-
line_number_resulting,
22+
line_number_expected,
23+
line_number_actual,
2424
lines: Vec::new(),
2525
}
2626
}
2727
}
2828

2929
// Produces a diff between the expected output and actual output.
3030
fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatch> {
31-
let mut line_number = 1;
32-
let mut line_number_resulting = 1;
31+
let mut line_number_expected = 1;
32+
let mut line_number_actual = 1;
3333
let mut context_queue: VecDeque<&[u8]> = VecDeque::with_capacity(context_size);
3434
let mut lines_since_mismatch = context_size + 1;
3535
let mut results = Vec::new();
@@ -57,8 +57,8 @@ fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatc
5757
if lines_since_mismatch >= context_size && lines_since_mismatch > 0 {
5858
results.push(mismatch);
5959
mismatch = Mismatch::new(
60-
line_number - context_queue.len() as u32,
61-
line_number_resulting - context_queue.len() as u32,
60+
line_number_expected - context_queue.len() as u32,
61+
line_number_actual - context_queue.len() as u32,
6262
);
6363
}
6464

@@ -69,33 +69,33 @@ fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatc
6969
if mismatch.lines.last() == Some(&DiffLine::MissingNL) {
7070
mismatch.lines.pop();
7171
match mismatch.lines.pop() {
72-
Some(DiffLine::Resulting(res)) => {
73-
// We have to make sure that Resulting (the + lines)
72+
Some(DiffLine::Actual(res)) => {
73+
// We have to make sure that Actual (the + lines)
7474
// always come after Expected (the - lines)
7575
mismatch.lines.push(DiffLine::Expected(str.to_vec()));
76-
if line_number > expected_lines_count {
76+
if line_number_expected > expected_lines_count {
7777
mismatch.lines.push(DiffLine::MissingNL)
7878
}
79-
mismatch.lines.push(DiffLine::Resulting(res));
79+
mismatch.lines.push(DiffLine::Actual(res));
8080
mismatch.lines.push(DiffLine::MissingNL);
8181
}
8282
_ => unreachable!("unterminated Left and Common lines shouldn't be followed by more Left lines"),
8383
}
8484
} else {
8585
mismatch.lines.push(DiffLine::Expected(str.to_vec()));
86-
if line_number > expected_lines_count {
86+
if line_number_expected > expected_lines_count {
8787
mismatch.lines.push(DiffLine::MissingNL)
8888
}
8989
}
90-
line_number += 1;
90+
line_number_expected += 1;
9191
lines_since_mismatch = 0;
9292
}
9393
diff::Result::Right(str) => {
9494
if lines_since_mismatch >= context_size && lines_since_mismatch > 0 {
9595
results.push(mismatch);
9696
mismatch = Mismatch::new(
97-
line_number - context_queue.len() as u32,
98-
line_number_resulting - context_queue.len() as u32,
97+
line_number_expected - context_queue.len() as u32,
98+
line_number_actual - context_queue.len() as u32,
9999
);
100100
}
101101

@@ -104,46 +104,46 @@ fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatc
104104
mismatch.lines.push(DiffLine::Context(line.to_vec()));
105105
}
106106

107-
mismatch.lines.push(DiffLine::Resulting(str.to_vec()));
108-
if line_number_resulting > actual_lines_count {
107+
mismatch.lines.push(DiffLine::Actual(str.to_vec()));
108+
if line_number_actual > actual_lines_count {
109109
mismatch.lines.push(DiffLine::MissingNL)
110110
}
111-
line_number_resulting += 1;
111+
line_number_actual += 1;
112112
lines_since_mismatch = 0;
113113
}
114114
diff::Result::Both(str, _) => {
115-
if (line_number_resulting > actual_lines_count)
116-
|| (line_number > expected_lines_count)
115+
if (line_number_actual > actual_lines_count)
116+
|| (line_number_expected > expected_lines_count)
117117
{
118118
// if one of them is missing a newline and the other isn't, then they don't actually match
119119
if lines_since_mismatch >= context_size
120120
&& lines_since_mismatch > 0
121-
&& (line_number_resulting > actual_lines_count)
122-
!= (line_number > expected_lines_count)
121+
&& (line_number_actual > actual_lines_count)
122+
!= (line_number_expected > expected_lines_count)
123123
{
124124
results.push(mismatch);
125125
mismatch = Mismatch::new(
126-
line_number - context_queue.len() as u32,
127-
line_number_resulting - context_queue.len() as u32,
126+
line_number_expected - context_queue.len() as u32,
127+
line_number_actual - context_queue.len() as u32,
128128
);
129129
}
130130
while let Some(line) = context_queue.pop_front() {
131131
assert!(mismatch.lines.last() != Some(&DiffLine::MissingNL));
132132
mismatch.lines.push(DiffLine::Context(line.to_vec()));
133133
}
134134
lines_since_mismatch = 0;
135-
if line_number_resulting > actual_lines_count
136-
&& line_number > expected_lines_count
135+
if line_number_actual > actual_lines_count
136+
&& line_number_expected > expected_lines_count
137137
{
138138
mismatch.lines.push(DiffLine::Context(str.to_vec()));
139139
mismatch.lines.push(DiffLine::MissingNL);
140-
} else if line_number > expected_lines_count {
140+
} else if line_number_expected > expected_lines_count {
141141
mismatch.lines.push(DiffLine::Expected(str.to_vec()));
142142
mismatch.lines.push(DiffLine::MissingNL);
143-
mismatch.lines.push(DiffLine::Resulting(str.to_vec()));
144-
} else if line_number_resulting > actual_lines_count {
143+
mismatch.lines.push(DiffLine::Actual(str.to_vec()));
144+
} else if line_number_actual > actual_lines_count {
145145
mismatch.lines.push(DiffLine::Expected(str.to_vec()));
146-
mismatch.lines.push(DiffLine::Resulting(str.to_vec()));
146+
mismatch.lines.push(DiffLine::Actual(str.to_vec()));
147147
mismatch.lines.push(DiffLine::MissingNL);
148148
}
149149
} else {
@@ -158,8 +158,8 @@ fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatc
158158
lines_since_mismatch += 1;
159159
}
160160

161-
line_number += 1;
162-
line_number_resulting += 1;
161+
line_number_expected += 1;
162+
line_number_actual += 1;
163163
}
164164
}
165165
}
@@ -171,27 +171,33 @@ fn make_diff(expected: &[u8], actual: &[u8], context_size: usize) -> Vec<Mismatc
171171
let mut mismatch = Mismatch::new(expected_lines.len() as u32, actual_lines.len() as u32);
172172
// empty diff and only expected lines has a missing line at end
173173
if expected_lines_count != expected_lines.len() as u32 {
174-
mismatch
175-
.lines
176-
.push(DiffLine::Expected(expected_lines.pop().expect("if expected is totally empty, then `expected_lines_count == expected_lines.len()`").to_vec()));
174+
mismatch.lines.push(DiffLine::Expected(
175+
expected_lines
176+
.pop()
177+
.expect("can't be empty; produced by split()")
178+
.to_vec(),
179+
));
177180
mismatch.lines.push(DiffLine::MissingNL);
178-
mismatch.lines.push(DiffLine::Resulting(
181+
mismatch.lines.push(DiffLine::Actual(
179182
actual_lines
180183
.pop()
181-
.expect("if expect is not empty and actual is, then `results.len() != 0`")
184+
.expect("can't be empty; produced by split()")
182185
.to_vec(),
183186
));
184187
results.push(mismatch);
185188
} else if actual_lines_count != actual_lines.len() as u32 {
186189
mismatch.lines.push(DiffLine::Expected(
187190
expected_lines
188191
.pop()
189-
.expect("if expect is not empty and actual is, then `results.len() != 0`")
192+
.expect("can't be empty; produced by split()")
193+
.to_vec(),
194+
));
195+
mismatch.lines.push(DiffLine::Actual(
196+
actual_lines
197+
.pop()
198+
.expect("can't be empty; produced by split()")
190199
.to_vec(),
191200
));
192-
mismatch
193-
.lines
194-
.push(DiffLine::Resulting(actual_lines.pop().expect("if actual is totally empty, then `actual_lines_count == actual_lines.len()`").to_vec()));
195201
mismatch.lines.push(DiffLine::MissingNL);
196202
results.push(mismatch);
197203
}
@@ -214,29 +220,29 @@ pub fn diff(
214220
return Vec::new();
215221
};
216222
for result in diff_results {
217-
let line_number = result.line_number;
218-
let line_number_resulting = result.line_number_resulting;
223+
let line_number_expected = result.line_number_expected;
224+
let line_number_actual = result.line_number_actual;
219225
let mut expected_count = 0;
220-
let mut resulting_count = 0;
226+
let mut actual_count = 0;
221227
for line in &result.lines {
222228
match line {
223229
DiffLine::Expected(_) => {
224230
expected_count += 1;
225231
}
226232
DiffLine::Context(_) => {
227233
expected_count += 1;
228-
resulting_count += 1;
234+
actual_count += 1;
229235
}
230-
DiffLine::Resulting(_) => {
231-
resulting_count += 1;
236+
DiffLine::Actual(_) => {
237+
actual_count += 1;
232238
}
233239
DiffLine::MissingNL => {}
234240
}
235241
}
236242
writeln!(
237243
output,
238244
"@@ -{},{} +{},{} @@",
239-
line_number, expected_count, line_number_resulting, resulting_count
245+
line_number_expected, expected_count, line_number_actual, actual_count
240246
)
241247
.expect("write to Vec is infallible");
242248
for line in result.lines {
@@ -251,7 +257,7 @@ pub fn diff(
251257
output.write_all(&c).expect("write to Vec is infallible");
252258
writeln!(output).unwrap();
253259
}
254-
DiffLine::Resulting(r) => {
260+
DiffLine::Actual(r) => {
255261
write!(output, "+",).expect("write to Vec is infallible");
256262
output.write_all(&r).expect("write to Vec is infallible");
257263
writeln!(output).unwrap();

0 commit comments

Comments
 (0)