Skip to content

Commit 45e9786

Browse files
Test decremented_index
1 parent 5750462 commit 45e9786

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed
Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
//! General utility functions
22
3+
use anyhow::Context;
4+
35
/// Getting the index by decrementing by 1.
46
/// e.g. 1 should refers to index 0
57
pub(crate) fn decremented_index(int: i16) -> anyhow::Result<usize> {
6-
match usize::try_from(int) {
7-
Ok(value) => Ok(value - 1),
8-
Err(e) => {
9-
Err(anyhow::Error::msg(format!(
10-
"Failed to convert to usize: {e}"
11-
)))
12-
},
8+
int.checked_sub(1)
9+
.and_then(|v| usize::try_from(v).ok())
10+
.context("Failed to convert '{int}' to usize: {e:?}")
11+
}
12+
13+
#[cfg(test)]
14+
mod tests {
15+
use super::*;
16+
17+
#[test]
18+
fn test_decremented_index() {
19+
assert_eq!(0, decremented_index(1).unwrap());
20+
decremented_index(0).unwrap_err();
21+
decremented_index(-1).unwrap_err();
1322
}
1423
}

0 commit comments

Comments
 (0)