Diffstat (limited to 'tests/common/protocol/hint.rs')
| -rw-r--r-- | tests/common/protocol/hint.rs | 22 |
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() } } |