Ignore PlainText segments when diffing

This commit is contained in:
2024-10-31 17:27:27 -06:00
parent c5da7f7dd5
commit 7f14b684bf
4 changed files with 22 additions and 12 deletions

View File

@@ -85,6 +85,9 @@ pub enum ObjInsArg {
}
impl ObjInsArg {
#[inline]
pub fn is_plain_text(&self) -> bool { matches!(self, ObjInsArg::PlainText(_)) }
pub fn loose_eq(&self, other: &ObjInsArg) -> bool {
match (self, other) {
(ObjInsArg::Arg(a), ObjInsArg::Arg(b)) => a.loose_eq(b),
@@ -112,6 +115,14 @@ pub struct ObjIns {
pub orig: Option<String>,
}
impl ObjIns {
/// Iterate over non-PlainText arguments.
#[inline]
pub fn iter_args(&self) -> impl DoubleEndedIterator<Item = &ObjInsArg> {
self.args.iter().filter(|a| !a.is_plain_text())
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Default)]
pub enum ObjSymbolKind {
#[default]