Diffstat (limited to 'src/walk/walkers/core/key_value.rs')
-rw-r--r--src/walk/walkers/core/key_value.rs25
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 {