Diffstat (limited to 'src/transform.rs')
-rw-r--r--src/transform.rs98
1 files changed, 49 insertions, 49 deletions
diff --git a/src/transform.rs b/src/transform.rs
index cd46681..bb2efcf 100644
--- a/src/transform.rs
+++ b/src/transform.rs
@@ -4,83 +4,83 @@ use crate::{
UniError, Walker,
};
-pub fn from<'value, 'ctx: 'value, U, T, VisitorErr>(
+pub fn from<'value, 'ctx, U, T>(
value: T,
-) -> Result<U, UniError<<T as WalkOnce<'value, 'ctx, VisitorErr>>::ErrorOnce, VisitorErr>>
+) -> Result<U, UniError<<T as WalkOnce<'value, 'ctx>>::Error, <U as Build<'value, 'ctx>>::Error>>
where
- U: Build<
- 'value,
- 'ctx,
- <T as WalkOnce<'value, 'ctx, VisitorErr>>::ErrorOnce,
- Error = VisitorErr,
- >,
- T: WalkOnce<'value, 'ctx, VisitorErr>,
+ U: Build<'value, 'ctx>,
+ <U as Build<'value, 'ctx>>::Error: 'value,
+ T: WalkOnce<'value, 'ctx>,
+ <T as WalkOnce<'value, 'ctx>>::Error: 'value,
{
- build_from::<U::Builder, _, _>(value)
+ build_from::<U::Builder, _>(value)
}
-pub fn from_mut<'value, 'ctx, U, T, VisitorErr>(
- value: &'value mut T,
-) -> Result<U, UniError<<T as WalkMut<'value, 'ctx, VisitorErr>>::ErrorMut, VisitorErr>>
+pub fn from_mut<'borrow, 'value, 'ctx, U, T: ?Sized>(
+ value: &'borrow mut T,
+) -> Result<
+ U,
+ UniError<<T as WalkMut<'value, 'borrow, 'ctx>>::Error, <U as Build<'value, 'ctx>>::Error>,
+>
where
- U: Build<'value, 'ctx, <T as WalkMut<'value, 'ctx, VisitorErr>>::ErrorMut, Error = VisitorErr>,
- T: WalkMut<'value, 'ctx, VisitorErr>,
+ U: Build<'value, 'ctx>,
+ <U as Build<'value, 'ctx>>::Error: 'value,
+ T: WalkMut<'value, 'borrow, 'ctx>,
+ <T as WalkMut<'value, 'borrow, 'ctx>>::Error: 'value,
{
- build_from_mut::<U::Builder, _, _>(value)
+ build_from_mut::<U::Builder, _>(value)
}
-pub fn from_ref<'value, 'ctx: 'value, U, T: ?Sized, VisitorErr>(
- value: &'value T,
-) -> Result<U, UniError<<T as Walk<'value, 'value, 'ctx, VisitorErr>>::Error, VisitorErr>>
+pub fn from_ref<'borrow, 'value, 'ctx, U, T: ?Sized>(
+ value: &'borrow T,
+) -> Result<U, UniError<<T as Walk<'value, 'borrow, 'ctx>>::Error, <U as Build<'value, 'ctx>>::Error>>
where
- U: Build<'value, 'ctx, <T as Walk<'value, 'value, 'ctx, VisitorErr>>::Error, Error = VisitorErr>,
- T: Walk<'value, 'value, 'ctx, VisitorErr>,
+ U: Build<'value, 'ctx>,
+ <U as Build<'value, 'ctx>>::Error: 'value,
+ T: Walk<'value, 'borrow, 'ctx>,
+ <T as Walk<'value, 'borrow, 'ctx>>::Error: 'value,
{
- build_from_ref::<U::Builder, _, _>(value)
+ build_from_ref::<U::Builder, _>(value)
}
-pub fn build_from<'value, 'ctx: 'value, B, T, VisitorErr>(
+pub fn build_from<'value, 'ctx, B, T>(
value: T,
-) -> Result<B::Value, UniError<<T as WalkOnce<'value, 'ctx, VisitorErr>>::ErrorOnce, VisitorErr>>
+) -> Result<B::Value, UniError<<T as WalkOnce<'value, 'ctx>>::Error, B::Error>>
where
- B: Builder<
- 'value,
- 'ctx,
- <T as WalkOnce<'value, 'ctx, VisitorErr>>::ErrorOnce,
- Error = VisitorErr,
- >,
- T: WalkOnce<'value, 'ctx, VisitorErr>,
+ B: Builder<'value, 'ctx>,
+ <B as Builder<'value, 'ctx>>::Error: 'value,
+ T: WalkOnce<'value, 'ctx>,
+ <T as WalkOnce<'value, 'ctx>>::Error: 'value,
{
let mut builder = B::init();
value.into_walker().walk(builder.as_visitor())?;
- builder.finish()
+ builder.finish().map_err(UniError::Visitor)
}
-pub fn build_from_mut<'value, 'ctx: 'value, B, T, VisitorErr>(
- value: &'value mut T,
-) -> Result<B::Value, UniError<<T as WalkMut<'value, 'ctx, VisitorErr>>::ErrorMut, VisitorErr>>
+pub fn build_from_mut<'borrow, 'value, 'ctx, B, T: ?Sized>(
+ value: &'borrow mut T,
+) -> Result<B::Value, UniError<<T as WalkMut<'value, 'borrow, 'ctx>>::Error, B::Error>>
where
- B: Builder<
- 'value,
- 'ctx,
- <T as WalkMut<'value, 'ctx, VisitorErr>>::ErrorMut,
- Error = VisitorErr,
- >,
- T: WalkMut<'value, 'ctx, VisitorErr>,
+ B: Builder<'value, 'ctx>,
+ <B as Builder<'value, 'ctx>>::Error: 'value,
+ T: WalkMut<'value, 'borrow, 'ctx>,
+ <T as WalkMut<'value, 'borrow, 'ctx>>::Error: 'value,
{
let mut builder = B::init();
value.walker_mut().walk(builder.as_visitor())?;
- builder.finish()
+ builder.finish().map_err(UniError::Visitor)
}
-pub fn build_from_ref<'value, 'ctx: 'value, B, T: ?Sized, VisitorErr>(
- value: &'value T,
-) -> Result<B::Value, UniError<<T as Walk<'value, 'value, 'ctx, VisitorErr>>::Error, VisitorErr>>
+pub fn build_from_ref<'borrow, 'value, 'ctx, B, T: ?Sized>(
+ value: &'borrow T,
+) -> Result<B::Value, UniError<<T as Walk<'value, 'borrow, 'ctx>>::Error, B::Error>>
where
- B: Builder<'value, 'ctx, <T as Walk<'value, 'value, 'ctx, VisitorErr>>::Error, Error = VisitorErr>,
- T: Walk<'value, 'value, 'ctx, VisitorErr>,
+ B: Builder<'value, 'ctx>,
+ <B as Builder<'value, 'ctx>>::Error: 'value,
+ T: Walk<'value, 'borrow, 'ctx>,
+ <T as Walk<'value, 'borrow, 'ctx>>::Error: 'value,
{
let mut builder = B::init();
value.walker().walk(builder.as_visitor())?;
- builder.finish()
+ builder.finish().map_err(UniError::Visitor)
}