Trait DoubleEndedIterator

Source
pub trait DoubleEndedIterator: DoubleEndedIterator + Iterator {
    // Required methods
    fn produces_back(self, visited: Seq<Self::Item>, o: Self) -> bool;
    fn produces_back_refl(self);
    fn produces_back_trans(
        a: Self,
        ab: Seq<Self::Item>,
        b: Self,
        bc: Seq<Self::Item>,
        c: Self,
    );
}

Required Methods§

Source

fn produces_back(self, visited: Seq<Self::Item>, o: Self) -> bool

logic(prophetic)

Source

fn produces_back_refl(self)

law

ensures

self.produces_back(Seq::EMPTY, self)

Source

fn produces_back_trans( a: Self, ab: Seq<Self::Item>, b: Self, bc: Seq<Self::Item>, c: Self, )

law

requires

a.produces_back(ab, b)

requires

b.produces_back(bc, c)

ensures

a.produces_back(ab.concat(bc), c)

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.

Implementors§

Source§

impl<Idx: DeepModel<DeepModelTy = Int> + Step> DoubleEndedIterator for Range<Idx>

Source§

impl<Idx: DeepModel<DeepModelTy = Int> + Step> DoubleEndedIterator for RangeInclusive<Idx>