Diffstat (limited to 'src/walk/walkers/core/key_value.rs')
| -rw-r--r-- | src/walk/walkers/core/key_value.rs | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/walk/walkers/core/key_value.rs b/src/walk/walkers/core/key_value.rs index 9045bf9..731bb79 100644 --- a/src/walk/walkers/core/key_value.rs +++ b/src/walk/walkers/core/key_value.rs @@ -1,7 +1,7 @@ use core::marker::PhantomData; use crate::{ - effect::{Adapters, Effect, ObjSafe}, + effect::{Effect, Effective, ErasedEffective}, never::Never, protocol::{ visitor::{visit_tag, TagConst, TagError, TagKind, VisitResult}, @@ -60,22 +60,19 @@ where fn walk<'b: 'c, 'c>( self, mut visitor: DynVisitor<'b, 'ctx>, - ) -> ObjSafe<'c, Result<Self::Output, Self::Error>, E> { + ) -> ErasedEffective<'c, Result<Self::Output, Self::Error>, E> { E::ready(visitor) - .as_ctx_for(move |visitor, _| { - ( - self.value_walker - .walk(visitor.cast()) - .map(|result| match result { - Ok(_) => Ok::<_, Self::Error>(()), - Err(_err) => todo!(), - }) - .into(), - PhantomData, - ) + .as_ctx(move |visitor| { + self.value_walker + .walk(visitor.cast()) + .map(|result| match result { + Ok(_) => Ok::<_, Self::Error>(()), + Err(_err) => todo!(), + }) + .into_erased() }) .map(|(_, value)| value) - .into() + .into_erased() // E::wrap(async move { // match visit_tag::<T, E, _>(self.tag, visitor.cast(), NoopWalker::new()).await { |