Diffstat (limited to 'src/build.rs')
-rw-r--r--src/build.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/build.rs b/src/build.rs
index ebea4ff..72f395d 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -1,4 +1,4 @@
-// pub mod builders;
+pub mod builders;
use crate::{
protocol::{AnyTraitSendObj as _, Effect, SyncEffect, Visitor},
@@ -89,21 +89,21 @@ pub enum BuildError<B, W> {
//
// builder.build().map_err(BuildError::Builder)
// }
-//
-// pub fn build_with<'ctx, B: Builder<'ctx, SyncEffect>, W: for<'a> Walker<'a, 'ctx, Effect = SyncEffect>>(
-// walker: W,
-// ) -> Result<B::Value, BuildError<B::Error, W::Error>>
-// where
-// <B as Builder<'ctx, SyncEffect>>::Seed: Default,
-// {
-// let mut builder = B::from_seed(Default::default());
-//
-// if let core::ops::ControlFlow::Break(err) = walker.walk(builder.as_visitor().as_obj_mut()) {
-// return Err(BuildError::Walker(err));
-// }
-//
-// builder.build().map_err(BuildError::Builder)
-// }
+
+pub fn build_with<'ctx, B: Builder<'ctx, SyncEffect>, W: Walker<'ctx, Effect = SyncEffect>>(
+ walker: W,
+) -> Result<B::Value, BuildError<B::Error, W::Error>>
+where
+ <B as Builder<'ctx, SyncEffect>>::Seed: Default,
+{
+ let mut builder = B::from_seed(Default::default());
+
+ if let core::ops::ControlFlow::Break(err) = walker.walk(builder.as_visitor().as_obj_mut()) {
+ return Err(BuildError::Walker(err));
+ }
+
+ builder.build().map_err(BuildError::Builder)
+}
// #[cfg(feature = "alloc")]
// use crate::protocol::AsyncEffect;