Diffstat (limited to 'src/walk.rs')
| -rw-r--r-- | src/walk.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/walk.rs b/src/walk.rs index c991377..672bfd3 100644 --- a/src/walk.rs +++ b/src/walk.rs @@ -7,7 +7,7 @@ use crate::{ }; /// A type that can be walked. -pub trait Walk<'ctx, M, E: Effect<'ctx>>: WalkerTypes + Sized { +pub trait Walk<'ctx, M, E: Effect>: WalkerTypes + Sized { /// The walker for the type. type Walker: Walker<'ctx, E, Error = Self::Error, Output = Self::Output>; @@ -33,20 +33,20 @@ pub trait WalkerTypes { /// - Call [From::from()] with a value to be walked to make a walker. /// - Call [Self::walk()] to walk the value. Data will be sent to the provided /// visitor. -pub trait Walker<'ctx, E: Effect<'ctx>>: WalkerTypes + Send { +pub trait Walker<'ctx, E: Effect>: WalkerTypes + Send { /// Walk the value. /// /// The walker should send data to the `visitor` as it walks the value. fn walk<'a>( self, visitor: Visitor<'a, 'ctx>, - ) -> Future<'a, 'ctx, Result<Self::Output, Self::Error>, E> + ) -> Future<'a, Result<Self::Output, Self::Error>, E> where Self: 'a; } -pub trait WalkerObjSafe<'ctx, E: Effect<'ctx>>: Send { - fn walk<'a>(&'a mut self, visitor: Visitor<'a, 'ctx>) -> Future<'a, 'ctx, Flow, E> +pub trait WalkerObjSafe<'ctx, E: Effect>: Send { + fn walk<'a>(&'a mut self, visitor: Visitor<'a, 'ctx>) -> Future<'a, Flow, E> where Self: 'a; } @@ -102,8 +102,8 @@ impl<W: WalkerTypes> DynWalkerAdapter<W> { } } -impl<'ctx, W: Walker<'ctx, E>, E: Effect<'ctx>> WalkerObjSafe<'ctx, E> for DynWalkerAdapter<W> { - fn walk<'a>(&'a mut self, visitor: Visitor<'a, 'ctx>) -> Future<'a, 'ctx, Flow, E> +impl<'ctx, W: Walker<'ctx, E>, E: Effect> WalkerObjSafe<'ctx, E> for DynWalkerAdapter<W> { + fn walk<'a>(&'a mut self, visitor: Visitor<'a, 'ctx>) -> Future<'a, Flow, E> where Self: 'a, { |