Diffstat (limited to 'src/build/builders/core/bool.rs')
-rw-r--r--src/build/builders/core/bool.rs27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/build/builders/core/bool.rs b/src/build/builders/core/bool.rs
index 241f1e4..7a95820 100644
--- a/src/build/builders/core/bool.rs
+++ b/src/build/builders/core/bool.rs
@@ -4,11 +4,15 @@ use crate::{
any::static_wrapper::OwnedStatic,
any_trait,
effect::{Effect, Future},
- protocol::{visitor::value::Value, Visitor},
+ protocol::{
+ visitor::value::{DynValue, Value},
+ Visitor,
+ },
+ Flow,
};
-impl<'ctx> crate::Build<'ctx> for bool {
- type Builder<E: Effect<'ctx>> = Builder<E>;
+impl<'ctx, M, E: Effect<'ctx>> crate::Build<'ctx, M, E> for bool {
+ type Builder = Builder<E>;
}
#[derive(Debug)]
@@ -34,9 +38,7 @@ impl<E> crate::BuilderTypes for Builder<E> {
type Seed = ();
}
-impl<'ctx, E: Effect<'ctx>> crate::Builder<'ctx> for Builder<E> {
- type Effect = E;
-
+impl<'ctx, E: Effect<'ctx>> crate::Builder<'ctx, E> for Builder<E> {
#[inline]
fn build<'a>(self) -> Future<'a, 'ctx, Result<Self::Value, Self::Error>, E>
where
@@ -59,19 +61,14 @@ impl<'ctx, E: Effect<'ctx>> crate::Builder<'ctx> for Builder<E> {
any_trait! {
impl['a, 'ctx, E] Builder<E> = [
- dyn Value<'a, 'ctx, OwnedStatic<bool>, Effect = E> + 'a,
+ DynValue<'a, 'ctx, OwnedStatic<bool>, E>,
] where E: Effect<'ctx>
}
-impl<'a, 'ctx: 'a, E: Effect<'ctx>> Value<'a, 'ctx, OwnedStatic<bool>> for Builder<E> {
- type Effect = E;
-
+impl<'a, 'ctx: 'a, E: Effect<'ctx>> Value<'a, 'ctx, OwnedStatic<bool>, E> for Builder<E> {
#[inline]
- fn visit(
- &'a mut self,
- OwnedStatic(value): OwnedStatic<bool>,
- ) -> Future<'a, 'ctx, ControlFlow<(), ()>, E> {
+ fn visit(&'a mut self, OwnedStatic(value): OwnedStatic<bool>) -> Future<'a, 'ctx, Flow, E> {
self.0 = Some(value);
- E::wrap(core::future::ready(ControlFlow::Continue(())))
+ E::ready(Flow::Continue)
}
}