Diffstat (limited to 'src/walk/walkers/core/bool.rs')
-rw-r--r--src/walk/walkers/core/bool.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/walk/walkers/core/bool.rs b/src/walk/walkers/core/bool.rs
index 03929e5..890db00 100644
--- a/src/walk/walkers/core/bool.rs
+++ b/src/walk/walkers/core/bool.rs
@@ -1,12 +1,15 @@
-use crate::{effect::Effect, Walk, WalkerTypes};
+use crate::{
+ effect::{Effect, ErasedEffective},
+ Walk, WalkerTypes,
+};
use super::value::ValueWalker;
impl<'ctx, M, E: Effect> Walk<'ctx, M, E> for bool {
type Walker = ValueWalker<bool>;
- fn into_walker(self) -> Self::Walker {
- ValueWalker::new(self)
+ fn into_walker<'e>(self) -> ErasedEffective<'e, Self::Walker, E> {
+ E::ready(ValueWalker::new(self))
}
}
@@ -18,8 +21,8 @@ impl WalkerTypes for bool {
impl<'ctx, M, E: Effect> Walk<'ctx, M, E> for &'ctx bool {
type Walker = ValueWalker<bool>;
- fn into_walker(self) -> Self::Walker {
- ValueWalker::new(*self)
+ fn into_walker<'e>(self) -> ErasedEffective<'e, Self::Walker, E> {
+ E::ready(ValueWalker::new(*self))
}
}