Diffstat (limited to 'src/walk/walkers/core/value.rs')
| -rw-r--r-- | src/walk/walkers/core/value.rs | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/walk/walkers/core/value.rs b/src/walk/walkers/core/value.rs index c33b2fe..62f5450 100644 --- a/src/walk/walkers/core/value.rs +++ b/src/walk/walkers/core/value.rs @@ -1,6 +1,6 @@ use crate::{ any::{BorrowedStatic, OwnedStatic}, - effect::{Effect, Future}, + effect::{Effect, ObjSafe}, never::Never, protocol::{visitor::visit_value, DynVisitor}, WalkerTypes, @@ -15,18 +15,21 @@ pub struct ValueWalker<T>(T); impl<T> ValueWalker<T> { /// Create walker from a value. + #[inline(always)] pub fn new(value: T) -> Self { Self(value) } } impl<T> From<T> for ValueWalker<T> { + #[inline(always)] fn from(value: T) -> Self { Self::new(value) } } impl<T: Copy> From<&T> for ValueWalker<T> { + #[inline(always)] fn from(value: &T) -> Self { Self::new(*value) } @@ -39,18 +42,20 @@ impl<T> WalkerTypes for ValueWalker<T> { } impl<'ctx, T: Send + Sync + 'static, E: Effect> crate::Walker<'ctx, E> for ValueWalker<T> { + #[inline(always)] fn walk<'a>( self, visitor: DynVisitor<'a, 'ctx>, - ) -> Future<'a, Result<Self::Output, Self::Error>, E> + ) -> ObjSafe<'a, Result<Self::Output, Self::Error>, E> where Self: 'a, { // Attempt to visit using the value protocol. - E::map( - visit_value::<_, E>(visitor, OwnedStatic(self.0)), - |_| Ok(()), - ) + todo!() + // E::map( + // visit_value::<_, E>(visitor, OwnedStatic(self.0)), + // |_| Ok(()), + // ) } } @@ -61,6 +66,7 @@ pub struct BorrowWalker<'ctx, T: ?Sized>(&'ctx T); impl<'ctx, T: ?Sized> BorrowWalker<'ctx, T> { /// Create walker from a value. + #[inline(always)] pub fn new(value: &'ctx T) -> Self { Self(value) } @@ -75,16 +81,18 @@ impl<'ctx, T: ?Sized> WalkerTypes for BorrowWalker<'ctx, T> { impl<'ctx, T: ?Sized + Send + Sync + 'static, E: Effect> crate::Walker<'ctx, E> for BorrowWalker<'ctx, T> { + #[inline(always)] fn walk<'a>( self, visitor: DynVisitor<'a, 'ctx>, - ) -> Future<'a, Result<Self::Output, Self::Error>, E> + ) -> ObjSafe<'a, Result<Self::Output, Self::Error>, E> where Self: 'a, { // Attempt to visit using the value protocol. - E::map(visit_value::<_, E>(visitor, BorrowedStatic(self.0)), |_| { - Ok(()) - }) + todo!() + // E::map(visit_value::<_, E>(visitor, BorrowedStatic(self.0)), |_| { + // Ok(()) + // }) } } |