From 234f0e6421b7b612ae3e5ad1a135815f3e94e63f Mon Sep 17 00:00:00 2001 From: Siddharth Vaderaa Date: Thu, 16 Sep 2021 12:29:30 +0200 Subject: [PATCH 1/4] added a function in Label to correctly get the top-level category by aws, this improves on the existing solution of only looking for the top-level category in Label.ParentName, this is achieved by lookin at both ParentName and Name --- src/aws/messages.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/aws/messages.rs b/src/aws/messages.rs index 796647b..6bccd09 100644 --- a/src/aws/messages.rs +++ b/src/aws/messages.rs @@ -12,6 +12,15 @@ pub struct Label { pub ParentName: String, } +impl Label { + pub fn get_top_level_category(&self) -> String { + match self.ParentName.is_empty() { + true => self.Name.clone(), + _ => self.ParentName.clone(), + } + } +} + #[derive(Deserialize)] #[allow(non_snake_case)] pub struct RekognitionResponse { @@ -24,7 +33,7 @@ impl RekognitionResponse { let labels: HashSet = self .ModerationLabels .iter() - .map(|l| l.ParentName.clone()) + .map(|l| l.get_top_level_category()) .filter(|l| !l.is_empty()) .collect(); labels From 1f4f4e462c220f0ebf2926a3834cb07087dc0ac5 Mon Sep 17 00:00:00 2001 From: Siddharth Vaderaa Date: Thu, 16 Sep 2021 19:36:06 +0200 Subject: [PATCH 2/4] retrieves the top level moderation category --- src/aws/messages.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/aws/messages.rs b/src/aws/messages.rs index 6bccd09..a87fd7d 100644 --- a/src/aws/messages.rs +++ b/src/aws/messages.rs @@ -13,10 +13,10 @@ pub struct Label { } impl Label { - pub fn get_top_level_category(&self) -> String { + pub fn top_category(&self) -> &str { match self.ParentName.is_empty() { - true => self.Name.clone(), - _ => self.ParentName.clone(), + true => &self.Name, + _ => &self.ParentName, } } } @@ -33,7 +33,7 @@ impl RekognitionResponse { let labels: HashSet = self .ModerationLabels .iter() - .map(|l| l.get_top_level_category()) + .map(|l| l.top_category().to_owned()) .filter(|l| !l.is_empty()) .collect(); labels From 8c9ec18d8908b4884af5435d522a5fdddc94b09c Mon Sep 17 00:00:00 2001 From: Siddharth Vaderaa Date: Fri, 17 Sep 2021 11:39:57 +0200 Subject: [PATCH 3/4] fix for moderation_status: changed match to if else --- src/aws/messages.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/aws/messages.rs b/src/aws/messages.rs index a87fd7d..8524c92 100644 --- a/src/aws/messages.rs +++ b/src/aws/messages.rs @@ -14,9 +14,10 @@ pub struct Label { impl Label { pub fn top_category(&self) -> &str { - match self.ParentName.is_empty() { - true => &self.Name, - _ => &self.ParentName, + if self.ParentName.is_empty() { + &self.Name + } else { + &self.ParentName } } } From 43c6c24ccf96f6344086703857f73b14edf11679 Mon Sep 17 00:00:00 2001 From: Siddharth Vaderaa Date: Fri, 17 Sep 2021 12:31:02 +0200 Subject: [PATCH 4/4] fix for moderation_status --- src/aws/messages.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/aws/messages.rs b/src/aws/messages.rs index 8524c92..d767cba 100644 --- a/src/aws/messages.rs +++ b/src/aws/messages.rs @@ -35,7 +35,6 @@ impl RekognitionResponse { .ModerationLabels .iter() .map(|l| l.top_category().to_owned()) - .filter(|l| !l.is_empty()) .collect(); labels .iter()