Diffstat (limited to 'src/build/builders/core.rs')
| -rw-r--r-- | src/build/builders/core.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/build/builders/core.rs b/src/build/builders/core.rs index 55c7bfb..3f8b2a5 100644 --- a/src/build/builders/core.rs +++ b/src/build/builders/core.rs @@ -1,6 +1,7 @@ +use effectful::{environment::{Environment, NativeForm}, is_send_sync}; + use crate::{ any_trait, - effect::{Effect, Effective, EffectiveExt, ErasedEffective}, protocol::{visitor::VisitResult, DynVisitor}, DynWalkerObjSafe, }; @@ -19,6 +20,8 @@ pub mod tag_name; #[non_exhaustive] pub struct NoopVisitor; +is_send_sync!(NoopVisitor); + impl NoopVisitor { pub fn new() -> Self { Self @@ -26,14 +29,14 @@ impl NoopVisitor { } any_trait! { - impl['ctx] NoopVisitor = [] + impl['ctx][E] NoopVisitor = [] where E: Environment } impl NoopVisitor { - pub fn walk_dyn<'ctx: 'e, 'walker: 'e, 'e, E: Effect>( + pub fn walk_dyn<'ctx: 'e, 'walker: 'e, 'e, E: Environment>( walker: DynWalkerObjSafe<'walker, 'ctx, E>, - ) -> ErasedEffective<'e, VisitResult, E> { - E::ready(NoopVisitor::new()).as_ctx_map(|noop| { + ) -> NativeForm<'e, VisitResult, E> { + E::value(NoopVisitor::new()).as_ctx_map(|noop| { walker .walk(DynVisitor(noop)) .map(|x| x.to_continue().into()) |