Update all comparisons to handle affiliated keywords.

This commit is contained in:
Tom Alexander
2023-10-11 14:57:32 -04:00
parent 9523365090
commit 41b4b1015e
4 changed files with 143 additions and 234 deletions

View File

@@ -30,7 +30,7 @@
/// }
/// ```
macro_rules! compare_properties {
($source:expr, $emacs:expr, $rust:expr, $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),+) => {
($source:expr, $emacs:expr, $rust:expr, $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),*) => {
{
let mut new_status = Vec::new();
let children = $emacs.as_list()?;
@@ -63,7 +63,7 @@ macro_rules! compare_properties {
},
EmacsField::Optional(_name) => {},
}
)+
)*
if !emacs_keys.is_empty() {
let unexpected_keys: Vec<&str> = emacs_keys.into_iter().collect();
@@ -91,13 +91,13 @@ macro_rules! compare_properties {
new_status.push(result);
}
}
)+
)*
new_status
}
};
// For elements with affiliated keywords
($source:expr, $emacs:expr, $rust:expr, [], $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),+) => {
($source:expr, $emacs:expr, $rust:expr, [], $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),*) => {
{
let mut new_status = Vec::new();
let children = $emacs.as_list()?;
@@ -148,7 +148,7 @@ macro_rules! compare_properties {
},
EmacsField::Optional(_name) => {},
}
)+
)*
if !emacs_keys.is_empty() {
let unexpected_keys: Vec<&str> = emacs_keys.into_iter().collect();
@@ -180,13 +180,13 @@ macro_rules! compare_properties {
new_status.push(result);
}
}
)+
)*
new_status
}
};
// Specifies additional properties
($source:expr, $emacs:expr, $rust:expr, $additionalproperties: expr, $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),+) => {
($source:expr, $emacs:expr, $rust:expr, $additionalproperties: expr, $(($emacs_field:expr, $rust_value_getter:expr, $compare_fn: expr)),*) => {
{
let mut new_status = Vec::new();
let children = $emacs.as_list()?;
@@ -236,7 +236,7 @@ macro_rules! compare_properties {
},
EmacsField::Optional(_name) => {},
}
)+
)*
if !emacs_keys.is_empty() {
let unexpected_keys: Vec<&str> = emacs_keys.into_iter().collect();
@@ -264,7 +264,7 @@ macro_rules! compare_properties {
new_status.push(result);
}
}
)+
)*
new_status
}