Diffstat (limited to 'src/protocol/visitor/sequence.rs')
-rw-r--r--src/protocol/visitor/sequence.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/protocol/visitor/sequence.rs b/src/protocol/visitor/sequence.rs
index de9666d..3239faf 100644
--- a/src/protocol/visitor/sequence.rs
+++ b/src/protocol/visitor/sequence.rs
@@ -1,7 +1,6 @@
use effectful::{
effective::Effective,
- environment::{DynBind, EnvConfig, Environment, NativeForm},
- is_send_sync,
+ environment::{DynBind, EnvConfig, Environment, NativeForm}, SendSync,
};
use crate::{
@@ -29,6 +28,7 @@ pub trait Sequence<'ctx, E: Environment>: DynBind<E> {
'ctx: 'a;
}
+#[derive(SendSync)]
pub struct SequenceProto<E: Environment>(Marker<E>);
impl<'a, 'ctx, E> TypeName::MemberTypeForLt<'a, 'ctx, E, &'a &'ctx ()> for SequenceProto<E>
@@ -59,13 +59,11 @@ pub trait SequenceScope<'ctx, E: Environment>: DynBind<E> {
pub type DynSequenceScope<'a, 'ctx, E> = &'a mut (dyn SequenceScope<'ctx, E> + 'a);
-#[derive(Default)]
+#[derive(Default, SendSync)]
pub struct SequenceKnown {
pub len: (usize, Option<usize>),
}
-is_send_sync!(SequenceKnown, SequenceHint);
-
impl<'a, 'ctx, E: EnvConfig> Meta::MemberTypeForLt<'a, 'ctx, E, &'a &'ctx ()> for SequenceKnown {
type T = SequenceKnown;
}
@@ -74,6 +72,7 @@ impl<'a, 'ctx, E: EnvConfig> Meta::LowerTypeWithBound<'a, 'ctx, E, &'a &'ctx ()>
type Higher = SequenceKnown;
}
+#[derive(SendSync)]
pub struct SequenceHint {
pub len: (usize, Option<usize>),
}