Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -137,6 +137,8 @@ macro_rules! Walk { $(pub const $field: usize = Fields::$field as usize;)* } + use $crate::effect::Adapters; + match index { $(fields::$field => { let key_walker = $crate::walkers::core::value::ValueWalker::new(stringify!($field)); @@ -145,7 +147,14 @@ macro_rules! Walk { let walker = $crate::walkers::core::key_value::KeyValueWalker::<$crate::protocol::visitor::TagConst<{ $crate::TAG_FIELD.to_int() }>, _, _>::new($crate::protocol::visitor::TagConst, key_walker, value_walker); - todo!() + $crate::Walker::<'ctx, E>::walk(walker, visitor).map(|result| match result { + Ok(_) => { + Ok($crate::Flow::Continue) + } + Err(err) => { + Err(FieldError(FieldErrorKind::$field(err))) + } + }).into() // E::map($crate::Walker::<'ctx, E>::walk(walker, visitor), |result| match result { // Ok(_) => { |