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