Diffstat (limited to 'src/build/builders/serde/deserialize_seed.rs')
| -rw-r--r-- | src/build/builders/serde/deserialize_seed.rs | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/build/builders/serde/deserialize_seed.rs b/src/build/builders/serde/deserialize_seed.rs index 23434cf..dce34c0 100644 --- a/src/build/builders/serde/deserialize_seed.rs +++ b/src/build/builders/serde/deserialize_seed.rs @@ -10,10 +10,8 @@ use serde::{ use crate::{ any::static_wrapper::OwnedStatic, any_trait, - protocol::{ - visitor::{Sequence, SequenceScope, Status, Value}, - AsObj, AsyncEffect, Yield, Effect, SyncEffect, - }, + effect::{AsObj, AsyncEffect, Effect, SyncEffect, Yield}, + protocol::visitor::{Sequence, SequenceScope, Status, Value}, AsVisitor, Builder as _, }; @@ -46,12 +44,14 @@ impl<'ctx, T: DeserializeSeed<'ctx>, E: Effect<'ctx, ControlFlow<(), ()>>> crate where Self: AsVisitor<'ctx, E>, { - type Error = Error<T>; type Value = T::Value; - fn build<'a>(self) -> Result<Self::Value, Self::Error> where Self: 'a { + fn build<'a>(self) -> Result<Self::Value, Self::Error> + where + Self: 'a, + { self.0 } @@ -82,7 +82,7 @@ where any_trait! { impl['a, 'ctx, T: DeserializeSeed<'ctx>, E] Builder<'ctx, T, E> = [ - dyn Value<'ctx, OwnedStatic<bool>, SyncEffect> + 'a, + dyn Value<'a, 'ctx, OwnedStatic<bool>, SyncEffect> + 'a, dyn Sequence<'ctx, SyncEffect> + 'a, ] } @@ -93,15 +93,14 @@ enum InjectedValue<'a, 'ctx, T> { Extra(PhantomData<T>), } -impl<'ctx, T: DeserializeSeed<'ctx>, E> Value<'ctx, OwnedStatic<bool>, SyncEffect> for Builder<'ctx, T, E> { +impl<'a, 'ctx: 'a, T: DeserializeSeed<'ctx>, E> Value<'a, 'ctx, OwnedStatic<bool>, SyncEffect> + for Builder<'ctx, T, E> +{ #[inline] - fn visit<'a>( + fn visit( &'a mut self, OwnedStatic(bool_value): OwnedStatic<bool>, - ) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect> - where - 'ctx: 'a, - { + ) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect> { let pending = core::mem::replace(&mut self.0, Err(Error::Incomplete)); let Err(Error::Pending(value)) = pending else { todo!() @@ -119,7 +118,10 @@ impl<'ctx, T: DeserializeSeed<'ctx>, E> Value<'ctx, OwnedStatic<bool>, SyncEffec impl<'ctx, T: DeserializeSeed<'ctx>, E> Sequence<'ctx, SyncEffect> for Builder<'ctx, T, E> { #[inline] - fn visit<'a>(&'a mut self, scope: &'a mut dyn SequenceScope<'ctx, SyncEffect>) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect> + fn visit<'a>( + &'a mut self, + scope: &'a mut dyn SequenceScope<'ctx, SyncEffect>, + ) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect> where 'ctx: 'a, { |