Update all comparisons to handle affiliated keywords.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user