Skip to content

Commit afe4234

Browse files
authored
Merge pull request #4 from casey/undeflow
Use wrapping sub to prevent underflow
2 parents 42ba173 + 04c05f6 commit afe4234

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/lib.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ fn fmt_changeset(f: &mut fmt::Formatter, changeset: &Changeset) -> fmt::Result {
7272
format_same(f, text)?;
7373
}
7474
Difference::Add(added) => {
75-
if let Some(Difference::Rem(removed)) = diffs.get(i - 1) {
75+
if let Some(Difference::Rem(removed)) = i.checked_sub(1).map(|i| &diffs[i]) {
7676
format_add_rem(f, added, removed)?;
7777
} else {
7878
format_add(f, added)?;
@@ -155,3 +155,17 @@ fn format_rem(f: &mut fmt::Formatter, text: &str) -> fmt::Result {
155155
}
156156
Ok(())
157157
}
158+
159+
#[cfg(test)]
160+
mod tests {
161+
use super::*;
162+
163+
#[test]
164+
fn single_add() {
165+
PrettyDifference {
166+
expected: "",
167+
actual: "foo",
168+
}
169+
.to_string();
170+
}
171+
}

0 commit comments

Comments
 (0)