pub unsafe trait DLIterFamily {
type LengthType: UInt;
type Iter<L: Term<Type = Self::LengthType>>: DLIter<LengthType = Self::LengthType, Family = Self, Length = L>;
type Item;
// Required methods
fn next<L: Term<Type = Self::LengthType>>(
iter: Self::Iter<Succ<L>>,
value: Value<L>,
) -> (Self::Iter<L>, Self::Item);
fn finish(iter: Self::Iter<Zero<Self::LengthType>>);
// Provided method
fn equiv<L1: Term<Type = Self::LengthType>, L2: Term<Type = Self::LengthType>>(
_: ValueEq<L1, L2>,
) -> Equiv<Self::Iter<L1>, Self::Iter<L2>> { ... }
}Expand description
SAFETY: You must either implement equiv yourself, or Iter
Required Associated Types§
type LengthType: UInt
type Iter<L: Term<Type = Self::LengthType>>: DLIter<LengthType = Self::LengthType, Family = Self, Length = L>
type Item
Required Methods§
fn next<L: Term<Type = Self::LengthType>>( iter: Self::Iter<Succ<L>>, value: Value<L>, ) -> (Self::Iter<L>, Self::Item)
fn finish(iter: Self::Iter<Zero<Self::LengthType>>)
Provided Methods§
fn equiv<L1: Term<Type = Self::LengthType>, L2: Term<Type = Self::LengthType>>( _: ValueEq<L1, L2>, ) -> Equiv<Self::Iter<L1>, Self::Iter<L2>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.