Diffstat (limited to 'src/build/builders/debug.rs')
| -rw-r--r-- | src/build/builders/debug.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/build/builders/debug.rs b/src/build/builders/debug.rs index b7331a1..cb447b6 100644 --- a/src/build/builders/debug.rs +++ b/src/build/builders/debug.rs @@ -5,14 +5,13 @@ use crate::{ any_trait, effect::{Effect, Future}, protocol::{ - self, - visitor::{ + self, visitor::{ DynSequenceScope, RequestHint, RequestHintProto, Sequence, Tag, TagDyn, TagProto, Value, ValueProto, VisitResult, - }, + }, DynVisitor }, - protocol::{visitor::SequenceProto, Walker}, - DynWalker, Flow, + protocol::{visitor::SequenceProto, DynWalker}, + DynWalkerObjSafe, Flow, }; pub struct Visitor<E>(usize, PhantomData<fn() -> E>); @@ -59,8 +58,8 @@ impl<E: Effect> Visitor<E> { impl<'ctx, E: Effect> RequestHint<'ctx, E> for Visitor<E> { fn request_hint<'a>( &'a mut self, - _walker: Walker<'a, 'ctx>, - ) -> Future<'a, VisitResult<Walker<'a, 'ctx>>, E> { + _walker: DynWalker<'a, 'ctx>, + ) -> Future<'a, VisitResult<DynWalker<'a, 'ctx>>, E> { // self.tab(); // println!("Visit request hint (no hint given)"); // println!("Visit request hint (hint for recoverable)"); @@ -72,8 +71,8 @@ impl<'ctx, E: Effect> Tag<'ctx, TagDyn, E> for Visitor<E> { fn visit<'a>( &'a mut self, kind: TagDyn, - walker: DynWalker<'a, 'ctx, E>, - ) -> Future<'a, VisitResult<DynWalker<'a, 'ctx, E>>, E> { + walker: DynWalkerObjSafe<'a, 'ctx, E>, + ) -> Future<'a, VisitResult<DynWalkerObjSafe<'a, 'ctx, E>>, E> { E::wrap(async move { match kind.0 { crate::TAG_TYPE_NAME => { @@ -81,7 +80,7 @@ impl<'ctx, E: Effect> Tag<'ctx, TagDyn, E> for Visitor<E> { println!("type name:"); self.0 += 1; - let _ = walker.walk(self).await; + let _ = walker.walk(DynVisitor(self)).await; self.0 -= 1; Flow::Continue.into() @@ -91,7 +90,7 @@ impl<'ctx, E: Effect> Tag<'ctx, TagDyn, E> for Visitor<E> { println!("key:"); self.0 += 1; - let _ = walker.walk(self).await; + let _ = walker.walk(DynVisitor(self)).await; self.0 -= 1; Flow::Continue.into() @@ -101,7 +100,7 @@ impl<'ctx, E: Effect> Tag<'ctx, TagDyn, E> for Visitor<E> { println!("value:"); self.0 += 1; - let _ = walker.walk(self).await; + let _ = walker.walk(DynVisitor(self)).await; self.0 -= 1; Flow::Continue.into() @@ -199,7 +198,7 @@ impl<'ctx, E: Effect> Sequence<'ctx, E> for Visitor<E> { println!("{}:", index); self.0 += 1; - match scope.next(self).await { + match scope.next(DynVisitor(self)).await { Flow::Done => { self.tab(); println!("<end>"); |