Diffstat (limited to 'src/build/builders/serde/deserialize.rs')
-rw-r--r--src/build/builders/serde/deserialize.rs33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/build/builders/serde/deserialize.rs b/src/build/builders/serde/deserialize.rs
index 8a9fa3e..1daa30f 100644
--- a/src/build/builders/serde/deserialize.rs
+++ b/src/build/builders/serde/deserialize.rs
@@ -7,10 +7,8 @@ use serde::{de::SeqAccess, forward_to_deserialize_any, Deserialize, Deserializer
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 _,
};
@@ -25,7 +23,8 @@ impl std::error::Error for Error {}
pub struct Builder<T, E>(Result<T, Error>, PhantomData<fn() -> E>);
-impl<'ctx, T: Deserialize<'ctx>, E: Effect<'ctx, ControlFlow<(), ()>>> crate::Builder<'ctx, E> for Builder<T, E>
+impl<'ctx, T: Deserialize<'ctx>, E: Effect<'ctx, ControlFlow<(), ()>>> crate::Builder<'ctx, E>
+ for Builder<T, E>
where
Self: AsVisitor<'ctx, E>,
{
@@ -33,7 +32,10 @@ where
type Value = T;
- 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
}
@@ -60,7 +62,7 @@ impl<'ctx, T: Deserialize<'ctx> + Send> AsVisitor<'ctx, AsyncEffect> for Builder
any_trait! {
impl['a, 'ctx, T: Deserialize<'ctx>, E] Builder<T, E> = [
- dyn Value<'ctx, OwnedStatic<bool>, SyncEffect> + 'a,
+ dyn Value<'a, 'ctx, OwnedStatic<bool>, SyncEffect> + 'a,
dyn Sequence<'ctx, SyncEffect> + 'a,
]
}
@@ -70,12 +72,14 @@ enum InjectedValue<'a, 'ctx> {
Sequence(&'a mut dyn SequenceScope<'ctx, SyncEffect>),
}
-impl<'ctx, T: Deserialize<'ctx>, E> Value<'ctx, OwnedStatic<bool>, SyncEffect> for Builder<T, E> {
+impl<'a, 'ctx: 'a, T: Deserialize<'ctx>, E> Value<'a, 'ctx, OwnedStatic<bool>, SyncEffect>
+ for Builder<T, E>
+{
#[inline]
- fn visit<'a>(&'a mut self, OwnedStatic(value): OwnedStatic<bool>) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect>
- where
- 'ctx: 'a,
- {
+ fn visit(
+ &'a mut self,
+ OwnedStatic(value): OwnedStatic<bool>,
+ ) -> Yield<'a, 'ctx, ControlFlow<(), ()>, SyncEffect> {
self.0 = T::deserialize(InjectedValue::Bool(value));
if self.0.is_err() {
@@ -88,7 +92,10 @@ impl<'ctx, T: Deserialize<'ctx>, E> Value<'ctx, OwnedStatic<bool>, SyncEffect> f
impl<'ctx, T: Deserialize<'ctx>, E> Sequence<'ctx, SyncEffect> for Builder<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,
{