Diffstat (limited to 'src/build/builders/debug.rs')
-rw-r--r--src/build/builders/debug.rs25
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>");