indexical::bitset

Trait BitSet

Source
pub trait BitSet: Clone + PartialEq {
    type Iter<'a>: Iterator<Item = usize>
       where Self: 'a;

Show 17 methods // Required methods fn empty(size: usize) -> Self; fn insert(&mut self, index: usize) -> bool; fn contains(&self, index: usize) -> bool; fn iter(&self) -> Self::Iter<'_>; fn len(&self) -> usize; fn union(&mut self, other: &Self); fn intersect(&mut self, other: &Self); fn subtract(&mut self, other: &Self); fn invert(&mut self); fn clear(&mut self); fn insert_all(&mut self); fn copy_from(&mut self, other: &Self); // Provided methods fn is_empty(&self) -> bool { ... } fn union_changed(&mut self, other: &Self) -> bool { ... } fn intersect_changed(&mut self, other: &Self) -> bool { ... } fn subtract_changed(&mut self, other: &Self) -> bool { ... } fn superset(&self, other: &Self) -> bool { ... }
}
Expand description

Interface for bit-set implementations.

Implement this trait if you want to provide a custom bit-set beneath the indexical abstractions.

Required Associated Types§

Source

type Iter<'a>: Iterator<Item = usize> where Self: 'a

Type of iterator returned by iter.

Required Methods§

Source

fn empty(size: usize) -> Self

Constructs a new bit-set with a domain of size size.

Source

fn insert(&mut self, index: usize) -> bool

Sets index to 1, returning true if self changed.

Source

fn contains(&self, index: usize) -> bool

Returns true if index is 1.

Source

fn iter(&self) -> Self::Iter<'_>

Returns an iterator over all the indices of ones in the bit-set.

Source

fn len(&self) -> usize

Returns the number of ones in the bit-set.

Source

fn union(&mut self, other: &Self)

Adds all ones from other to self.

Source

fn intersect(&mut self, other: &Self)

Removes all ones in self not in other.

Source

fn subtract(&mut self, other: &Self)

Removes all ones from other in self.

Source

fn invert(&mut self)

Flips all bits in self.

Source

fn clear(&mut self)

Sets all bits to 0.

Source

fn insert_all(&mut self)

Adds every element of the domain to self.

Source

fn copy_from(&mut self, other: &Self)

Copies other into self. Must have the same lengths.

Provided Methods§

Source

fn is_empty(&self) -> bool

Returns true if there are no ones in the bit-set.

Source

fn union_changed(&mut self, other: &Self) -> bool

Adds all ones from other to self, returning true if self changed.

Source

fn intersect_changed(&mut self, other: &Self) -> bool

Removes all ones in self not in other, returning true if self changed.

Source

fn subtract_changed(&mut self, other: &Self) -> bool

Removes all ones from other in self, returning true if self changed.

Source

fn superset(&self, other: &Self) -> bool

Returns true if all ones in other are a one in self.

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§