diff options
Diffstat (limited to 'backend/app/src/utils/find_by_id_or.rs')
| -rw-r--r-- | backend/app/src/utils/find_by_id_or.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/backend/app/src/utils/find_by_id_or.rs b/backend/app/src/utils/find_by_id_or.rs deleted file mode 100644 index f5add30..0000000 --- a/backend/app/src/utils/find_by_id_or.rs +++ /dev/null @@ -1,53 +0,0 @@ -pub fn find_by_id_or<Id: PartialEq, Val: Copy>( - arr: &[(Id, Option<Val>)], - id: Id, - default: Val, -) -> Val { - arr.iter() - .find(|(elem_id, _)| *elem_id == id) - .map_or(default, |row| match row { - (_, Some(quantity)) => *quantity, - (_, _) => default, - }) -} - -#[cfg(test)] -mod test { - use super::find_by_id_or; - - #[test] - fn when_no_elements_then_return_default() { - let arr = []; - - let result = find_by_id_or(&arr, 1, 42); - - assert_eq!(result, 42); - } - - #[test] - fn when_id_not_in_elements_then_return_default() { - let arr = [(0, Some(100)), (2, Some(200))]; - - let result = find_by_id_or(&arr, 1, 42); - - assert_eq!(result, 42); - } - - #[test] - fn when_value_is_none_then_return_default() { - let arr = [(1, None)]; - - let result = find_by_id_or(&arr, 1, 42); - - assert_eq!(result, 42); - } - - #[test] - fn when_value_is_some_then_return_value() { - let arr = [(1, Some(67))]; - - let result = find_by_id_or(&arr, 1, 42); - - assert_eq!(result, 67); - } -} |
