summaryrefslogtreecommitdiff
path: root/backend/src/utils/find_by_id_or.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
committerJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
commit27b95c9186bd45edd4c982a7cc89cf69cf2c5d46 (patch)
treebf104ff9d64e601bfec5516eb51ef298f3095e9b /backend/src/utils/find_by_id_or.rs
parent76974785294089965efc3f55b2a08d4089029c52 (diff)
All backend stuff lives in backend folder
Diffstat (limited to 'backend/src/utils/find_by_id_or.rs')
-rw-r--r--backend/src/utils/find_by_id_or.rs53
1 files changed, 0 insertions, 53 deletions
diff --git a/backend/src/utils/find_by_id_or.rs b/backend/src/utils/find_by_id_or.rs
deleted file mode 100644
index f5add30..0000000
--- a/backend/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);
- }
-}