Diffstat (limited to 'src/protocol/visitor.rs')
-rw-r--r--src/protocol/visitor.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/protocol/visitor.rs b/src/protocol/visitor.rs
index e2ed85c..bf2b8d2 100644
--- a/src/protocol/visitor.rs
+++ b/src/protocol/visitor.rs
@@ -79,6 +79,16 @@ impl<S> VisitResult<S> {
VisitResult::Control(Flow::Err) => Some(Status::Err),
}
}
+
+ pub fn map_skipped<R, F>(self, f: F) -> VisitResult<R>
+ where
+ F: FnOnce(S) -> R,
+ {
+ match self {
+ VisitResult::Skipped(s) => VisitResult::Skipped(f(s)),
+ VisitResult::Control(flow) => VisitResult::Control(flow),
+ }
+ }
}
pub trait EffectiveVisitExt<'lt>: Effective<'lt> {