Diffstat (limited to 'tests/common/protocol/request_hint.rs')
| -rw-r--r-- | tests/common/protocol/request_hint.rs | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/tests/common/protocol/request_hint.rs b/tests/common/protocol/request_hint.rs index 63c423d..83de82b 100644 --- a/tests/common/protocol/request_hint.rs +++ b/tests/common/protocol/request_hint.rs @@ -1,33 +1,40 @@ +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::{RequestHint, RequestHintProto, Value, ValueProto, VisitResult}, protocol::DynWalker, Flow, }; mock! { - pub RequestHintVisitor<E> { - pub fn request_hint<'a, 'ctx>(&mut self, walker: DynWalker<'a, 'ctx>) -> VisitResult; + pub RequestHintVisitor<E: Environment> { + pub fn request_hint<'a, 'ctx>(&mut self, walker: DynWalker<'a, 'ctx, E>) -> VisitResult; } } +unsafe impl<E: Environment, F: Bool> IsSend<F> for MockRequestHintVisitor<E> {} +unsafe impl<E: Environment, F: Bool> IsSync<F> for MockRequestHintVisitor<E> {} + any_trait! { - impl['ctx, E] MockRequestHintVisitor<E> = [ + impl['ctx][E] MockRequestHintVisitor<E> = [ RequestHintProto<E> ] where - E: Effect, + E: Environment, } -impl<'ctx, E: Effect> RequestHint<'ctx, E> for MockRequestHintVisitor<E> { +impl<'ctx, E: Environment> RequestHint<'ctx, E> for MockRequestHintVisitor<E> { fn request_hint<'this: 'e, 'walker: 'e, 'e>( &'this mut self, - walker: DynWalker<'walker, 'ctx>, - ) -> ErasedEffective<'e, VisitResult, E> + walker: DynWalker<'walker, 'ctx, E>, + ) -> NativeForm<'e, VisitResult, E> where 'ctx: 'this + 'walker, { - E::ready(self.request_hint(walker)) + E::value(self.request_hint(walker)).cast() } } |