Diffstat (limited to 'src/build/builders/debug.rs')
| -rw-r--r-- | src/build/builders/debug.rs | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/src/build/builders/debug.rs b/src/build/builders/debug.rs index 4957ba9..2914423 100644 --- a/src/build/builders/debug.rs +++ b/src/build/builders/debug.rs @@ -1,7 +1,10 @@ use core::{any::TypeId, marker::PhantomData, ops::ControlFlow}; use crate::{ - any::{static_wrapper::OwnedStatic, LtTypeId}, + any::{ + static_wrapper::{DynOwnedStatic, OwnedStatic}, + LtTypeId, + }, any_trait, effect::{Effect, Future}, never::Never, @@ -21,16 +24,16 @@ use crate::{ pub struct Visitor<E>(usize, PhantomData<fn() -> E>); any_trait! { - impl['a, 'ctx, E] Visitor<E> = [ - DynRequestHint<'a, 'ctx, E>, + impl['ctx, E] Visitor<E> = [ + DynRequestHint<'ctx, E>, // DynRecoverable<'a, 'ctx, E>, - DynTag<'a, 'ctx, TagDyn, E>, - DynValue<'a, 'ctx, OwnedStatic<&'static str>, E>, - DynValue<'a, 'ctx, OwnedStatic<TypeId>, E>, - DynValue<'a, 'ctx, OwnedStatic<usize>, E>, - DynValue<'a, 'ctx, OwnedStatic<bool>, E>, + DynTag<'ctx, TagDyn, E>, + DynValue<'ctx, DynOwnedStatic<'ctx, &'static str>, E>, + DynValue<'ctx, DynOwnedStatic<'ctx, TypeId>, E>, + DynValue<'ctx, DynOwnedStatic<'ctx, usize>, E>, + DynValue<'ctx, DynOwnedStatic<'ctx, bool>, E>, // DynValue<'a, 'ctx, OwnedStatic<&'static [&'static str]>, E>, - DynSequence<'a, 'ctx, E>, + DynSequence<'ctx, E>, ] else fallback where E: Effect<'ctx> } @@ -109,53 +112,54 @@ impl<'ctx, E: Effect<'ctx>> Tag<'ctx, TagDyn, E> for Visitor<E> { } } -impl<'ctx, E: Effect<'ctx>> Value<'ctx, OwnedStatic<&'static str>, E> for Visitor<E> { +impl<'ctx, E: Effect<'ctx>> Value<'ctx, DynOwnedStatic<'ctx, &'static str>, E> for Visitor<E> { fn visit<'a>( &'a mut self, OwnedStatic(value): OwnedStatic<&'static str>, - ) -> Future<'a, 'ctx, Flow, E> - { + ) -> Future<'a, 'ctx, Flow, E> { self.tab(); println!("{:?}", value); E::ready(Flow::Continue) } } -impl<'ctx, E: Effect<'ctx>> Value<'ctx, OwnedStatic<usize>, E> for Visitor<E> { - fn visit<'a>(&'a mut self, OwnedStatic(value): OwnedStatic<usize>) -> Future<'a, 'ctx, Flow, E> - { +impl<'ctx, E: Effect<'ctx>> Value<'ctx, DynOwnedStatic<'ctx, usize>, E> for Visitor<E> { + fn visit<'a>( + &'a mut self, + OwnedStatic(value): OwnedStatic<usize>, + ) -> Future<'a, 'ctx, Flow, E> { self.tab(); println!("{}", value); E::ready(Flow::Continue) } } -impl<'ctx, E: Effect<'ctx>> Value<'ctx, OwnedStatic<bool>, E> for Visitor<E> { - fn visit<'a>(&'a mut self, OwnedStatic(value): OwnedStatic<bool>) -> Future<'a, 'ctx, Flow, E> - { +impl<'ctx, E: Effect<'ctx>> Value<'ctx, DynOwnedStatic<'ctx, bool>, E> for Visitor<E> { + fn visit<'a>(&'a mut self, OwnedStatic(value): OwnedStatic<bool>) -> Future<'a, 'ctx, Flow, E> { self.tab(); println!("{}", value); E::ready(Flow::Continue) } } -impl<'ctx, E: Effect<'ctx>> Value<'ctx, OwnedStatic<&'static [&'static str]>, E> +impl<'ctx, E: Effect<'ctx>> Value<'ctx, DynOwnedStatic<'ctx, &'static [&'static str]>, E> for Visitor<E> { fn visit<'a>( &'a mut self, OwnedStatic(value): OwnedStatic<&'static [&'static str]>, - ) -> Future<'a, 'ctx, Flow, E> - { + ) -> Future<'a, 'ctx, Flow, E> { self.tab(); println!("{:?}", value); E::ready(Flow::Continue) } } -impl<'ctx, E: Effect<'ctx>> Value<'ctx, OwnedStatic<TypeId>, E> for Visitor<E> { - fn visit<'a>(&'a mut self, OwnedStatic(value): OwnedStatic<TypeId>) -> Future<'a, 'ctx, Flow, E> - { +impl<'ctx, E: Effect<'ctx>> Value<'ctx, DynOwnedStatic<'ctx, TypeId>, E> for Visitor<E> { + fn visit<'a>( + &'a mut self, + OwnedStatic(value): OwnedStatic<TypeId>, + ) -> Future<'a, 'ctx, Flow, E> { self.tab(); println!("Visit type ID: {:?}", value); E::ready(Flow::Continue) |