From 65df18171ac7b4a25d73a066620a98347d99fd3e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Fri, 6 Oct 2023 16:42:31 -0400 Subject: [PATCH] Add field list for regular link. --- src/compare/diff.rs | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/compare/diff.rs b/src/compare/diff.rs index cf802f8..2e82186 100644 --- a/src/compare/diff.rs +++ b/src/compare/diff.rs @@ -3,6 +3,8 @@ use std::borrow::Cow; use std::collections::BTreeSet; use std::collections::HashSet; +use super::compare_field::compare_identity; +use super::compare_field::compare_noop; use super::compare_field::compare_property_quoted_string; use super::elisp_fact::ElispFact; use super::elisp_fact::GetElispFact; @@ -2758,10 +2760,46 @@ fn compare_regular_link<'b, 's>( emacs: &'b Token<'s>, rust: &'b RegularLink<'s>, ) -> Result, Box> { - let this_status = DiffStatus::Good; - let message = None; + let mut this_status = DiffStatus::Good; + let mut message = None; - // TODO: Compare :type :path :format :raw-link :application :search-option + if let Some((new_status, new_message)) = compare_properties!( + emacs, + rust, + ( + EmacsField::Required(":type"), + compare_identity, + compare_noop + ), + ( + EmacsField::Required(":path"), + compare_identity, + compare_noop + ), + ( + EmacsField::Required(":format"), + compare_identity, + compare_noop + ), + ( + EmacsField::Required(":raw-link"), + compare_identity, + compare_noop + ), + ( + EmacsField::Required(":application"), + compare_identity, + compare_noop + ), + ( + EmacsField::Required(":search-option"), + compare_identity, + compare_noop + ) + )? { + this_status = new_status; + message = new_message; + } Ok(DiffResult { status: this_status,