Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -88,12 +88,12 @@ macro_rules! Walk { { $(#[$($attr:tt)*])* $vis:vis struct $name:ident {$( - $field:ident: $type:ty + $fvis:vis $field:ident: $type:ty ),* $(,)?} } => { const _: () = { impl<'ctx, M: 'ctx, E: $crate::effect::Effect> $crate::Walk<'ctx, M, E> for &'ctx $name { - type Walker = $crate::walkers::core::r#struct::StructWalker<'ctx, $name, Info, M, E>; + type Walker = $crate::walkers::core::r#struct::StructWalker<'ctx, Info, $crate::walkers::core::r#struct::StaticType, M, E>; fn into_walker(self) -> Self::Walker { $crate::walkers::core::r#struct::StructWalker::new(self) @@ -123,12 +123,13 @@ macro_rules! Walk { type FieldError = FieldError<'ctx>; type T = $name; + type S = $crate::walkers::core::r#struct::StaticType; #[allow(unreachable_code, non_snake_case, non_upper_case_globals, non_camel_case_types)] fn walk_field<'a, E: $crate::effect::Effect>( index: usize, value: &'ctx Self::T, - visitor: $crate::protocol::Visitor<'a, 'ctx>, + visitor: $crate::protocol::DynVisitor<'a, 'ctx>, ) -> $crate::effect::Future<'a, Result<$crate::Flow, Self::FieldError>, E> { mod fields { enum Fields {$($field),*} @@ -146,7 +147,7 @@ macro_rules! Walk { E::map($crate::Walker::<'ctx, E>::walk(walker, visitor), |result| match result { Ok(_) => { - Ok(Flow::Continue) + Ok($crate::Flow::Continue) } Err(err) => { Err(FieldError(FieldErrorKind::$field(err))) |