Diffstat (limited to 'src/protocol.rs')
| -rw-r--r-- | src/protocol.rs | 11 |
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) |