Trait fvm_ipld_bitfield::iter::RangeIterator

source ·
pub trait RangeIterator: Iterator<Item = Range<u64>> + Sized {
    // Provided methods
    fn union<R: RangeIterator>(self, other: R) -> Combine<Self, R, Union> { ... }
    fn intersection<R: RangeIterator>(
        self,
        other: R,
    ) -> Combine<Self, R, Intersection> { ... }
    fn difference<R: RangeIterator>(
        self,
        other: R,
    ) -> Combine<Self, R, Difference> { ... }
    fn symmetric_difference<R: RangeIterator>(
        self,
        other: R,
    ) -> Combine<Self, R, SymmetricDifference> { ... }
    fn cut<R: RangeIterator>(self, other: R) -> Combine<Self, R, Cut> { ... }
    fn skip_bits(self, n: u64) -> Skip<Self>  { ... }
    fn take_bits(self, n: u64) -> Take<Self>  { ... }
}
Expand description

A trait for iterators over Range<u64>.

Requirements:

  • all ranges are non-empty
  • the ranges are in ascending order
  • no two ranges overlap or touch

Provided Methods§

source

fn union<R: RangeIterator>(self, other: R) -> Combine<Self, R, Union>

Returns a new RangeIterator over the bits that are in self, in other, or in both.

source

fn intersection<R: RangeIterator>( self, other: R, ) -> Combine<Self, R, Intersection>

Returns a new RangeIterator over the bits that are in both self and other.

source

fn difference<R: RangeIterator>(self, other: R) -> Combine<Self, R, Difference>

Returns a new RangeIterator over the bits that are in self but not in other.

source

fn symmetric_difference<R: RangeIterator>( self, other: R, ) -> Combine<Self, R, SymmetricDifference>

Returns a new RangeIterator over the bits that are in self or in other, but not in both.

source

fn cut<R: RangeIterator>(self, other: R) -> Combine<Self, R, Cut>

Returns a new RangeIterator over the bits in self that remain after “cutting” out the bits in other, and shifting remaining bits to the left if necessary. For example:

lhs:     xx-xxx--x
rhs:     -xx-x----

cut:     x  x x--x
output:  xxx--x
source

fn skip_bits(self, n: u64) -> Skip<Self>

Returns a new RangeIterator over the bits in self after skipping the first n bits.

source

fn take_bits(self, n: u64) -> Take<Self>

Returns a new RangeIterator over the first n bits in self.

Object Safety§

This trait is not object safe.

Implementors§