Diffstat (limited to 'src/protocol/visitor/sequence.rs')
-rw-r--r--src/protocol/visitor/sequence.rs51
1 files changed, 23 insertions, 28 deletions
diff --git a/src/protocol/visitor/sequence.rs b/src/protocol/visitor/sequence.rs
index e748eef..c79f985 100644
--- a/src/protocol/visitor/sequence.rs
+++ b/src/protocol/visitor/sequence.rs
@@ -27,20 +27,19 @@ pub trait Sequence<'ctx, E: Effect> {
pub struct SequenceProto<E: Effect>(Marker<E>);
-higher_ranked_type! {
- impl TypeName {
- impl['a, 'ctx, E] type T['a, 'ctx] for SequenceProto<E> =
- dyn Sequence<'ctx, E> + Send + Sync + 'a
- where {
- E: Effect
- };
-
- impl['a, 'ctx, E] type HigherRanked['a, 'ctx] for dyn Sequence<'ctx, E> + Send + Sync + 'a =
- SequenceProto<E>
- where {
- E: Effect
- };
- }
+impl<'a, 'ctx, E> TypeName::MemberTypeForLt<'a, 'ctx, &'a &'ctx ()> for SequenceProto<E>
+where
+ E: Effect,
+{
+ type T = dyn Sequence<'ctx, E> + Send + Sync + 'a;
+}
+
+impl<'a, 'ctx, E> TypeName::LowerTypeWithBound<'a, 'ctx, &'a &'ctx ()>
+ for dyn Sequence<'ctx, E> + Send + Sync + 'a
+where
+ E: Effect,
+{
+ type Higher = SequenceProto<E>;
}
pub trait SequenceScope<'ctx, E: Effect> {
@@ -61,28 +60,24 @@ pub struct SequenceKnown {
pub len: (usize, Option<usize>),
}
-higher_ranked_type! {
- impl Meta {
- impl['a, 'ctx] type T['a, 'ctx] for SequenceKnown =
- SequenceKnown;
+impl<'a, 'ctx> Meta::MemberTypeForLt<'a, 'ctx, &'a &'ctx ()> for SequenceKnown {
+ type T = SequenceKnown;
+}
- impl['a, 'ctx] type HigherRanked['a, 'ctx] for SequenceKnown =
- SequenceKnown;
- }
+impl<'a, 'ctx> Meta::LowerTypeWithBound<'a, 'ctx, &'a &'ctx ()> for SequenceKnown {
+ type Higher = SequenceKnown;
}
pub struct SequenceHint {
pub len: (usize, Option<usize>),
}
-higher_ranked_type! {
- impl Meta {
- impl['a, 'ctx] type T['a, 'ctx] for SequenceHint =
- SequenceHint;
+impl<'a, 'ctx> Meta::MemberTypeForLt<'a, 'ctx, &'a &'ctx ()> for SequenceHint {
+ type T = SequenceHint;
+}
- impl['a, 'ctx] type HigherRanked['a, 'ctx] for SequenceHint =
- SequenceHint;
- }
+impl<'a, 'ctx> Meta::LowerTypeWithBound<'a, 'ctx, &'a &'ctx ()> for SequenceHint {
+ type Higher = SequenceHint;
}
impl<E: Effect> HintMeta for SequenceProto<E> {