Skip to content

Commit

Permalink
Add comments to ease readability and maintainability
Browse files Browse the repository at this point in the history
  • Loading branch information
oSoMoN committed Feb 8, 2024
1 parent 2c36841 commit 3e45f28
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/normal_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ fn make_diff(expected: &[u8], actual: &[u8]) -> Vec<Mismatch> {

#[must_use]
pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
// See https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Normal.html
// for details on the syntax of the normal format.
let mut output = Vec::new();
let diff_results = make_diff(expected, actual);
for result in diff_results {
Expand All @@ -121,6 +123,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
match (expected_count, actual_count) {
(0, 0) => unreachable!(),
(0, _) => writeln!(
// 'a' stands for "Add lines"
&mut output,
"{}a{},{}",
line_number_expected - 1,
Expand All @@ -129,6 +132,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
)
.unwrap(),
(_, 0) => writeln!(
// 'd' stands for "Delete lines"
&mut output,
"{},{}d{}",
line_number_expected,
Expand All @@ -137,12 +141,16 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
)
.unwrap(),
(1, 1) => writeln!(
// 'c' stands for "Change lines"
// exactly one line replaced by one line
&mut output,
"{}c{}",
line_number_expected, line_number_actual
line_number_expected,
line_number_actual
)
.unwrap(),
(1, _) => writeln!(
// one line replaced by multiple lines
&mut output,
"{}c{},{}",
line_number_expected,
Expand All @@ -151,6 +159,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
)
.unwrap(),
(_, 1) => writeln!(
// multiple lines replaced by one line
&mut output,
"{},{}c{}",
line_number_expected,
Expand All @@ -159,6 +168,7 @@ pub fn diff(expected: &[u8], actual: &[u8]) -> Vec<u8> {
)
.unwrap(),
_ => writeln!(
// general case: multiple lines replaced by multiple lines
&mut output,
"{},{}c{},{}",
line_number_expected,
Expand Down

0 comments on commit 3e45f28

Please sign in to comment.