summaryrefslogtreecommitdiff
path: root/rust/schist_queries/src/utils/find_by_id_or.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-12 08:28:04 +0000
committerJoe Carstairs <me@joeac.net>2024-12-12 08:28:04 +0000
commit54894f9de9bad4fecb2a116d59a03cdd003f84c0 (patch)
tree6ce5517cecf23d4e93d7a381a374e1fa6c810cee /rust/schist_queries/src/utils/find_by_id_or.rs
parent8a30bcbdf9264d235bf93da3df8e170cfde53d02 (diff)
Moves rust workspace to root
Diffstat (limited to 'rust/schist_queries/src/utils/find_by_id_or.rs')
-rw-r--r--rust/schist_queries/src/utils/find_by_id_or.rs41
1 files changed, 0 insertions, 41 deletions
diff --git a/rust/schist_queries/src/utils/find_by_id_or.rs b/rust/schist_queries/src/utils/find_by_id_or.rs
deleted file mode 100644
index 8335e5c..0000000
--- a/rust/schist_queries/src/utils/find_by_id_or.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-pub fn find_by_id_or<Id: PartialEq, Val: Copy>(
- arr: &[(Id, Val)],
- id: Id,
- default: Val,
-) -> Val {
- arr.iter()
- .find(|(elem_id, _)| *elem_id == id)
- .map_or(default, |row| row.1)
-}
-
-#[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, 100), (2, 200)];
-
- let result = find_by_id_or(&arr, 1, 42);
-
- assert_eq!(result, 42);
- }
-
- #[test]
- fn when_id_in_elements_then_return_value() {
- let arr = [(1, 67)];
-
- let result = find_by_id_or(&arr, 1, 42);
-
- assert_eq!(result, 67);
- }
-}