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§
sourcefn union<R: RangeIterator>(self, other: R) -> Combine<Self, R, Union>
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.
sourcefn intersection<R: RangeIterator>(
self,
other: R,
) -> Combine<Self, R, Intersection>
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
.
sourcefn difference<R: RangeIterator>(self, other: R) -> Combine<Self, R, Difference>
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
.
sourcefn symmetric_difference<R: RangeIterator>(
self,
other: R,
) -> Combine<Self, R, SymmetricDifference>
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.
sourcefn cut<R: RangeIterator>(self, other: R) -> Combine<Self, R, Cut>
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
Object Safety§
This trait is not object safe.