Diffstat (limited to 'tests/common/protocol/hint.rs')
-rw-r--r--tests/common/protocol/hint.rs22
1 files changed, 15 insertions, 7 deletions
diff --git a/tests/common/protocol/hint.rs b/tests/common/protocol/hint.rs
index 89f53a6..5884132 100644
--- a/tests/common/protocol/hint.rs
+++ b/tests/common/protocol/hint.rs
@@ -1,7 +1,11 @@
+use effectful::{
+ bound::{Bool, IsSend, IsSync},
+ effective::Effective,
+ environment::{Environment, NativeForm},
+};
use mockall::mock;
use treaty::{
any::{any_trait, TypeName},
- effect::{Effect, Effective, ErasedEffective},
protocol::{
visitor::VisitResult,
walker::hint::{DynVisitorWith, Hint, HintMeta, HintProto, MetaHint, MetaKnown},
@@ -21,11 +25,15 @@ mock! {
}
}
+unsafe impl<P: HintMeta, F: Bool> IsSend<F> for MockHintWalker<P> {}
+unsafe impl<P: HintMeta, F: Bool> IsSync<F> for MockHintWalker<P> {}
+
any_trait! {
- impl['ctx, P] MockHintWalker<P> = [
+ impl['ctx, P][E] MockHintWalker<P> = [
HintProto<P>
] where
- P: HintMeta,
+ E: Environment,
+ P: HintMeta<Effect = E>,
}
impl<'ctx, P: HintMeta> Hint<'ctx, P> for MockHintWalker<P> {
@@ -33,17 +41,17 @@ impl<'ctx, P: HintMeta> Hint<'ctx, P> for MockHintWalker<P> {
&'this mut self,
visitor: DynVisitorWith<'visitor, 'ctx, P>,
hint: MetaHint<'hint, 'ctx, P>,
- ) -> ErasedEffective<'e, VisitResult, P::Effect>
+ ) -> NativeForm<'e, VisitResult, P::Effect>
where
'ctx: 'this + 'visitor + 'hint + 'e,
{
- P::Effect::ready(self.hint(visitor, hint))
+ P::Effect::value(self.hint(visitor, hint)).cast()
}
fn known<'a>(
&'a mut self,
hint: &'a MetaHint<'a, 'ctx, P>,
- ) -> ErasedEffective<'a, Result<MetaKnown<'a, 'ctx, P>, ()>, P::Effect> {
- P::Effect::ready(Self::known(self)(&(), hint))
+ ) -> NativeForm<'a, Result<MetaKnown<'a, 'ctx, P>, ()>, P::Effect> {
+ P::Effect::value(Self::known(self)(&(), hint)).cast()
}
}