From 181e310ebd93c986ef1cc614fff42418f9455362 Mon Sep 17 00:00:00 2001 From: davidemazzocchi Date: Fri, 27 Feb 2026 10:48:43 +0100 Subject: [PATCH] feat: simplify return type of catalog.list_by_subclass method --- 01.workspace/heave/src/imp/catalog_list_by_subclass.rs | 4 ++-- .../heave/src/tst/catalog_list_by_class_and_subclass.rs | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/01.workspace/heave/src/imp/catalog_list_by_subclass.rs b/01.workspace/heave/src/imp/catalog_list_by_subclass.rs index 6bdd856..ca83e8f 100644 --- a/01.workspace/heave/src/imp/catalog_list_by_subclass.rs +++ b/01.workspace/heave/src/imp/catalog_list_by_subclass.rs @@ -24,7 +24,7 @@ impl Catalog { /// /// Returns `Err(FailedTo::LockCatalog)` if the catalog's internal mutex /// could not be locked. - pub fn list_by_subclass(&self, subclass: &str) -> Result>, FailedTo> + pub fn list_by_subclass(&self, subclass: &str) -> Result, FailedTo> where T: EAV, { @@ -33,7 +33,7 @@ impl Catalog { .values() .filter(move |item| item.class == T::class()) .filter(move |item| item.subclass == Some(subclass.to_string())) - .map(|item| T::try_from(item.clone()).map_err(|_| FailedTo::ConvertEntity)) +.filter_map(|item| { T::try_from(item.clone()).ok() }) .collect()) }) } diff --git a/01.workspace/heave/src/tst/catalog_list_by_class_and_subclass.rs b/01.workspace/heave/src/tst/catalog_list_by_class_and_subclass.rs index 67efd6f..61fe552 100644 --- a/01.workspace/heave/src/tst/catalog_list_by_class_and_subclass.rs +++ b/01.workspace/heave/src/tst/catalog_list_by_class_and_subclass.rs @@ -26,7 +26,6 @@ mod tests { .list_by_subclass::("electronics") .unwrap() .into_iter() - .map(|item| item.unwrap()) .collect(); assert_eq!(results.len(), 2); assert!(results.contains(&item1)); @@ -46,7 +45,6 @@ mod tests { .list_by_subclass::("books") .unwrap() .into_iter() - .map(|item| item.unwrap()) .collect(); assert!(results.is_empty()); }