From 7276242f78806e4d0ef2298f410e7f8284d75e60 Mon Sep 17 00:00:00 2001 From: dommyrock Date: Fri, 12 Jul 2024 15:22:36 +0200 Subject: [PATCH] cleanup market/..flatten.rs and utils/..agreement.rs fn's --- core/market/resolver/src/flatten.rs | 14 ++++++-------- utils/agreement-utils/src/agreement.rs | 20 ++++++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/core/market/resolver/src/flatten.rs b/core/market/resolver/src/flatten.rs index bcc00bf67e..130e132da9 100644 --- a/core/market/resolver/src/flatten.rs +++ b/core/market/resolver/src/flatten.rs @@ -9,12 +9,10 @@ pub enum FlattenError { } pub fn flatten_properties(str_json_properties: &str) -> Result, FlattenError> { - let json_properties: Value = serde_json::from_str(str_json_properties)?; - let mapped = flatten(json_properties); - let mut properties = vec![]; - for (k, v) in mapped.iter() { - properties.push(format!("{}={}", k, serde_json::to_string(v)?)) - } - - Ok(properties) + flatten(serde_json::from_str(str_json_properties)?) + .iter() + .try_fold(vec![], |mut vec, (k, v)| { + vec.push(format!("{}={}", k, serde_json::to_string(v)?)); + Ok(vec) + }) } diff --git a/utils/agreement-utils/src/agreement.rs b/utils/agreement-utils/src/agreement.rs index 1988e63503..b46348ff69 100644 --- a/utils/agreement-utils/src/agreement.rs +++ b/utils/agreement-utils/src/agreement.rs @@ -310,15 +310,19 @@ fn flatten_inner(prefix: String, result: &mut Map, value: Value) result.insert(prefix, Value::Object(Map::new())); } else { for (k, v) in m.into_iter() { - if k.as_str() == PROPERTY_TAG { - result.insert(prefix.clone(), v); - continue; + match k.as_str() { + PROPERTY_TAG => { + result.insert(prefix.clone(), v); + continue; + } + _ => { + let p = prefix + .is_empty() + .then(|| k.clone()) + .unwrap_or_else(|| format!("{}.{}", prefix, k).into()); + flatten_inner(p, result, v) + } } - let p = match prefix.is_empty() { - true => k, - _ => format!("{}.{}", prefix, k), - }; - flatten_inner(p, result, v); } } }