Fix comparing key and mark prefix/suffix as optional.

This commit is contained in:
Tom Alexander
2023-10-09 15:41:21 -04:00
parent f6155ecf93
commit 8a0f9d4540
3 changed files with 40 additions and 20 deletions

View File

@@ -14,7 +14,6 @@ use crate::types::AstNode;
#[derive(Debug)]
pub(crate) enum EmacsField<'s> {
Required(&'s str),
#[allow(dead_code)]
Optional(&'s str),
}

View File

@@ -3492,13 +3492,21 @@ fn compare_citation<'b, 's>(
compare_property_quoted_string
),
(
EmacsField::Required(":prefix"),
|r| Some(r.prefix.iter()),
EmacsField::Optional(":prefix"),
|r| if r.prefix.is_empty() {
None
} else {
Some(r.prefix.iter())
},
compare_property_list_of_ast_nodes
),
(
EmacsField::Required(":suffix"),
|r| Some(r.suffix.iter()),
EmacsField::Optional(":suffix"),
|r| if r.suffix.is_empty() {
None
} else {
Some(r.suffix.iter())
},
compare_property_list_of_ast_nodes
)
) {
@@ -3544,13 +3552,21 @@ fn compare_citation_reference<'b, 's>(
compare_property_quoted_string
),
(
EmacsField::Required(":prefix"),
|r| Some(r.prefix.iter()),
EmacsField::Optional(":prefix"),
|r| if r.prefix.is_empty() {
None
} else {
Some(r.prefix.iter())
},
compare_property_list_of_ast_nodes
),
(
EmacsField::Required(":suffix"),
|r| Some(r.suffix.iter()),
EmacsField::Optional(":suffix"),
|r| if r.suffix.is_empty() {
None
} else {
Some(r.suffix.iter())
},
compare_property_list_of_ast_nodes
)
) {