Diffstat (limited to 'src/walk.rs')
-rw-r--r--src/walk.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/walk.rs b/src/walk.rs
index a7ace88..a8051fb 100644
--- a/src/walk.rs
+++ b/src/walk.rs
@@ -37,16 +37,16 @@ pub trait Walker<'ctx, E: Effect>: WalkerTypes + Send + Sync {
/// Walk the value.
///
/// The walker should send data to the `visitor` as it walks the value.
- fn walk<'a>(
+ fn walk<'visitor: 'effect, 'effect>(
self,
- visitor: DynVisitor<'a, 'ctx>,
- ) -> ObjSafe<'a, Result<Self::Output, Self::Error>, E>
+ visitor: DynVisitor<'visitor, 'ctx>,
+ ) -> ObjSafe<'effect, Result<Self::Output, Self::Error>, E>
where
- Self: 'a;
+ Self: 'effect;
}
pub trait WalkerObjSafe<'ctx, E: Effect>: Send {
- fn walk<'a>(&'a mut self, visitor: DynVisitor<'a, 'ctx>) -> ObjSafe<'a, Flow, E>
+ fn walk<'a, 'b: 'a>(&'a mut self, visitor: DynVisitor<'b, 'ctx>) -> ObjSafe<'b, Flow, E>
where
Self: 'a;
}
@@ -107,7 +107,7 @@ impl<W: WalkerTypes> DynWalkerAdapter<W> {
impl<'ctx, W: Walker<'ctx, E>, E: Effect> WalkerObjSafe<'ctx, E> for DynWalkerAdapter<W> {
#[inline(always)]
- fn walk<'a>(&'a mut self, visitor: DynVisitor<'a, 'ctx>) -> ObjSafe<'a, Flow, E>
+ fn walk<'a, 'b: 'a>(&'a mut self, visitor: DynVisitor<'b, 'ctx>) -> ObjSafe<'b, Flow, E>
where
Self: 'a,
{