Diffstat (limited to 'src/protocol.rs')
-rw-r--r--src/protocol.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/protocol.rs b/src/protocol.rs
index 6293e3d..0d25b0f 100644
--- a/src/protocol.rs
+++ b/src/protocol.rs
@@ -60,16 +60,14 @@ use core::ops::{Deref, DerefMut};
use effectful::{
bound::{IsSend, IsSync},
environment::Environment,
+ SendSync,
};
use crate::any::AnyTrait;
+#[derive(SendSync)]
pub struct DynVisitor<'a, 'ctx, Env: Environment>(pub &'a mut (dyn AnyTrait<'ctx, Env> + 'a));
-unsafe impl<'a, 'ctx, E: Environment> IsSend<E::NeedSend> for DynVisitor<'a, 'ctx, E> {}
-
-unsafe impl<'a, 'ctx, E: Environment> IsSync<E::NeedSync> for DynVisitor<'a, 'ctx, E> {}
-
impl<'a, 'ctx, Env: Environment> DynVisitor<'a, 'ctx, Env> {
pub fn cast<'b>(&'b mut self) -> DynVisitor<'b, 'ctx, Env> {
DynVisitor(&mut *self.0)
@@ -105,12 +103,9 @@ impl<'b, 'ctx, Env: Environment> AsVisitor<'ctx, Env> for DynVisitor<'b, 'ctx, E
}
}
+#[derive(SendSync)]
pub struct DynWalker<'a, 'ctx, Env: Environment>(pub &'a mut (dyn AnyTrait<'ctx, Env> + 'a));
-unsafe impl<'a, 'ctx, E: Environment> IsSend<E::NeedSend> for DynWalker<'a, 'ctx, E> {}
-
-unsafe impl<'a, 'ctx, E: Environment> IsSync<E::NeedSync> for DynWalker<'a, 'ctx, E> {}
-
impl<'a, 'ctx, Env: Environment> DynWalker<'a, 'ctx, Env> {
pub fn cast<'b>(&'b mut self) -> DynWalker<'b, 'ctx, Env> {
DynWalker(&mut *self.0)