From 3fcf1b3864928f835dc26601fb5b8bb4321d515e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Wed, 11 Oct 2023 16:27:25 -0400 Subject: [PATCH] Compare Document additional properties. --- src/compare/diff.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/compare/diff.rs b/src/compare/diff.rs index 87a9bf3..7ad080e 100644 --- a/src/compare/diff.rs +++ b/src/compare/diff.rs @@ -455,6 +455,27 @@ fn _compare_document<'b, 's>( let mut child_status = Vec::new(); let mut message = None; + let additional_property_names: Vec = rust + .get_additional_properties() + .map(|node_property| format!(":{}", node_property.property_name.to_uppercase())) + .collect(); + + let additional_properties: Vec<(String, &str)> = rust + .get_additional_properties() + .map(|node_property| { + ( + format!(":{}", node_property.property_name.to_uppercase()), + node_property.value.unwrap_or(""), + ) + }) + .collect(); + + compare_additional_properties(emacs, additional_properties.into_iter())?.apply( + &mut child_status, + &mut this_status, + &mut message, + ); + compare_children_iter( source, emacs, @@ -468,6 +489,10 @@ fn _compare_document<'b, 's>( source, emacs, rust, + additional_property_names + .iter() + .map(String::as_str) + .map(EmacsField::Required), ( EmacsField::Required(":path"), |r| r.path.as_ref().map(|p| p.to_str()).flatten(),