diff --git a/src/compare/util.rs b/src/compare/util.rs index 0706a5b..4a4e684 100644 --- a/src/compare/util.rs +++ b/src/compare/util.rs @@ -9,7 +9,6 @@ use crate::compare::diff::compare_ast_node; use crate::compare::sexp::unquote; use crate::types::AstNode; use crate::types::GetStandardProperties; -use crate::types::Keyword; use crate::types::StandardProperties; /// Check if the child string slice is a slice of the parent string slice. @@ -338,29 +337,3 @@ where } Ok(ComparePropertiesResult::NoChange) } - -// pub(crate) fn compare_affiliated_keywords<'b, 's, RK, RV, RI>( -// emacs: &'b Token<'s>, -// rust_children: RI, -// ) -> Result, Box> -// where -// RI: Iterator> + ExactSizeIterator, -// { -// for kw in rust_children { - -// } -// for (rust_key, rust_value) in rust_children { -// let rust_key = rust_key.as_ref(); -// let rust_value = rust_value.as_ref(); -// let emacs_value = get_property_quoted_string(emacs, rust_key)?; -// if Some(rust_value) != emacs_value.as_ref().map(String::as_str) { -// let this_status = DiffStatus::Bad; -// let message = Some(format!( -// "{} mismatch (emacs != rust) {:?} != {:?}", -// rust_key, emacs_value, rust_value -// )); -// return Ok(ComparePropertiesResult::SelfChange(this_status, message)); -// } -// } -// Ok(ComparePropertiesResult::NoChange) -// } diff --git a/src/types/affiliated_keyword.rs b/src/types/affiliated_keyword.rs index b409311..ec1c0f6 100644 --- a/src/types/affiliated_keyword.rs +++ b/src/types/affiliated_keyword.rs @@ -19,3 +19,7 @@ pub struct AffiliatedKeyword<'s> { pub struct AffiliatedKeywords<'s> { pub(crate) keywords: BTreeMap<&'s str, AffiliatedKeywordValue<'s>>, } + +pub trait GetAffiliatedKeywords<'s> { + fn get_affiliated_keywords<'a>(&'a self) -> &'a AffiliatedKeywords<'s>; +} diff --git a/src/types/greater_element.rs b/src/types/greater_element.rs index f2dbfb1..3660f74 100644 --- a/src/types/greater_element.rs +++ b/src/types/greater_element.rs @@ -1,3 +1,4 @@ +use super::affiliated_keyword::GetAffiliatedKeywords; use super::element::Element; use super::lesser_element::TableCell; use super::AffiliatedKeywords; @@ -220,3 +221,9 @@ impl<'s> TableRow<'s> { } } } + +impl<'s> GetAffiliatedKeywords<'s> for PlainList<'s> { + fn get_affiliated_keywords<'a>(&'a self) -> &'a AffiliatedKeywords<'s> { + &self.affiliated_keywords + } +} diff --git a/src/types/mod.rs b/src/types/mod.rs index 506ffe3..dbce299 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -13,6 +13,7 @@ mod util; pub use affiliated_keyword::AffiliatedKeyword; pub use affiliated_keyword::AffiliatedKeywordValue; pub use affiliated_keyword::AffiliatedKeywords; +pub use affiliated_keyword::GetAffiliatedKeywords; pub(crate) use ast_node::AstNode; pub use document::Document; pub use document::DocumentElement;