Diffstat (limited to 'src/walk/walkers/core/noop.rs')
| -rw-r--r-- | src/walk/walkers/core/noop.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/walk/walkers/core/noop.rs b/src/walk/walkers/core/noop.rs index ec8e5b8..8f81626 100644 --- a/src/walk/walkers/core/noop.rs +++ b/src/walk/walkers/core/noop.rs @@ -1,5 +1,6 @@ +use effectful::{environment::{Environment, NativeForm}, is_send_sync, effective::Effective}; + use crate::{ - effect::{Effect, ErasedEffective}, never::Never, protocol::DynVisitor, }; @@ -11,21 +12,23 @@ use crate::{ #[derive(Debug, Default)] pub struct NoopWalker; +is_send_sync!(NoopWalker); + impl NoopWalker { pub fn new() -> Self { Self } } -impl<'ctx, E: Effect> crate::Walker<'ctx, E> for NoopWalker { +impl<'ctx, E: Environment> crate::Walker<'ctx, E> for NoopWalker { type Error = Never; type Output = (); fn walk<'b: 'c, 'c>( self, - _visitor: DynVisitor<'b, 'ctx>, - ) -> ErasedEffective<'c, Result<Self::Output, Self::Error>, E> { - E::ready(Ok(())) + _visitor: DynVisitor<'b, 'ctx, E>, + ) -> NativeForm<'c, Result<Self::Output, Self::Error>, E> { + E::value(Ok(())).cast() } } |