diff --git a/lib/src/default_revset_engine.rs b/lib/src/default_revset_engine.rs index 1800af422..cbd59520f 100644 --- a/lib/src/default_revset_engine.rs +++ b/lib/src/default_revset_engine.rs @@ -14,6 +14,7 @@ use std::cmp::{Ordering, Reverse}; use std::collections::{BinaryHeap, HashSet}; +use std::fmt; use std::iter::Peekable; use std::sync::Arc; @@ -31,7 +32,7 @@ use crate::revset::{ use crate::store::Store; use crate::{backend, rewrite}; -trait ToPredicateFn { +trait ToPredicateFn: fmt::Debug { /// Creates function that tests if the given entry is included in the set. /// /// The predicate function is evaluated in order of `RevsetIterator`. @@ -44,7 +45,7 @@ impl ToPredicateFn for Box { } } -trait InternalRevset<'index>: ToPredicateFn { +trait InternalRevset<'index>: fmt::Debug + ToPredicateFn { // All revsets currently iterate in order of descending index position fn iter(&self) -> Box> + '_>; } @@ -189,6 +190,7 @@ where } } +#[derive(Debug)] struct EagerRevset<'index> { index_entries: Vec>, } @@ -217,6 +219,12 @@ struct RevWalkRevset { walk: T, } +impl fmt::Debug for RevWalkRevset { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RevWalkRevset").finish_non_exhaustive() + } +} + impl<'index, T> InternalRevset<'index> for RevWalkRevset where T: Iterator> + Clone, @@ -247,6 +255,7 @@ fn predicate_fn_from_iter<'index, 'iter>( }) } +#[derive(Debug)] struct ChildrenRevset<'index> { // The revisions we want to find children for root_set: Box + 'index>, @@ -278,6 +287,7 @@ impl ToPredicateFn for ChildrenRevset<'_> { } } +#[derive(Debug)] struct FilterRevset<'index, P> { candidates: Box + 'index>, predicate: P, @@ -299,6 +309,7 @@ impl ToPredicateFn for FilterRevset<'_, P> { } } +#[derive(Debug)] struct UnionRevset<'index> { set1: Box + 'index>, set2: Box + 'index>, @@ -351,6 +362,7 @@ impl<'index, I1: Iterator>, I2: Iterator { set1: Box + 'index>, set2: Box + 'index>, @@ -413,6 +425,7 @@ impl<'index, I1: Iterator>, I2: Iterator { // The minuend (what to subtract from) set1: Box + 'index>, @@ -725,6 +738,12 @@ impl<'index, 'heads> EvaluationContext<'index, 'heads> { struct PurePredicateFn(F); +impl fmt::Debug for PurePredicateFn { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("PurePredicateFn").finish_non_exhaustive() + } +} + impl) -> bool> ToPredicateFn for PurePredicateFn { fn to_predicate_fn(&self) -> Box) -> bool + '_> { Box::new(&self.0)