Diffstat (limited to 'src/build/builders/core/enum.rs')
-rw-r--r--src/build/builders/core/enum.rs43
1 files changed, 4 insertions, 39 deletions
diff --git a/src/build/builders/core/enum.rs b/src/build/builders/core/enum.rs
index aaa44ff..da66e9d 100644
--- a/src/build/builders/core/enum.rs
+++ b/src/build/builders/core/enum.rs
@@ -3,8 +3,8 @@ use core::fmt::{Debug, Display};
use effectful::bound::{Bool, IsSend, IsSync};
use effectful::effective::Effective;
use effectful::environment::{DynBind, Environment, NativeForm};
-use effectful::forward_send_sync;
use effectful::higher_ranked::Mut;
+use effectful::SendSync;
use crate::any::{OwnedStatic, TempBorrowedStatic, TempBorrowedStaticHrt};
use crate::protocol::visitor::{DynRecoverableScope, Recoverable, RecoverableProto};
@@ -20,6 +20,7 @@ use crate::{
Builder, BuilderTypes, DynWalkerObjSafe, Flow,
};
+#[derive(SendSync)]
pub struct EnumBuilder<'ctx, Info, Mode, E: Environment>
where
Info: EnumBuildInfo<'ctx, Mode, E>,
@@ -27,20 +28,7 @@ where
inner: Inner<'ctx, Info, Mode, E>,
}
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSend<E::NeedSend>
- for EnumBuilder<'ctx, Info, Mode, E>
-where
- Info: EnumBuildInfo<'ctx, Mode, E>,
-{
-}
-
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSync<E::NeedSync>
- for EnumBuilder<'ctx, Info, Mode, E>
-where
- Info: EnumBuildInfo<'ctx, Mode, E>,
-{
-}
-
+#[derive(SendSync)]
enum Inner<'ctx, Info, Mode, E: Environment>
where
Info: EnumBuildInfo<'ctx, Mode, E>,
@@ -51,16 +39,6 @@ where
Value(Result<Info::T, Info::Error>),
}
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSend<E::NeedSend> for Inner<'ctx, Info, Mode, E> where
- Info: EnumBuildInfo<'ctx, Mode, E>
-{
-}
-
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSync<E::NeedSync> for Inner<'ctx, Info, Mode, E> where
- Info: EnumBuildInfo<'ctx, Mode, E>
-{
-}
-
pub trait EnumBuildInfo<'ctx, Mode, E: Environment> {
type Builders: DynBind<E>;
@@ -259,6 +237,7 @@ where
}
}
+#[derive(SendSync)]
struct VariantVisitor<'ctx, Info, Mode, E: Environment>
where
Info: EnumBuildInfo<'ctx, Mode, E>,
@@ -266,20 +245,6 @@ where
marker: Option<Info::VariantMarker>,
}
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSend<E::NeedSend>
- for VariantVisitor<'ctx, Info, Mode, E>
-where
- Info: EnumBuildInfo<'ctx, Mode, E>,
-{
-}
-
-unsafe impl<'ctx, Info, Mode, E: Environment> IsSync<E::NeedSync>
- for VariantVisitor<'ctx, Info, Mode, E>
-where
- Info: EnumBuildInfo<'ctx, Mode, E>,
-{
-}
-
any_trait! {
impl['ctx, Info, Mode][E] VariantVisitor<'ctx, Info, Mode, E> = [
ValueProto<TempBorrowedStaticHrt<str>, E>,