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§
Required Methods§
Sourcefn iter(&self) -> Self::Iter<'_>
fn iter(&self) -> Self::Iter<'_>
Returns an iterator over all the indices of ones in the bit-set.
Sourcefn insert_all(&mut self)
fn insert_all(&mut self)
Adds every element of the domain to self.
Provided Methods§
Sourcefn union_changed(&mut self, other: &Self) -> bool
fn union_changed(&mut self, other: &Self) -> bool
Adds all ones from other to self, returning true if self changed.
Sourcefn intersect_changed(&mut self, other: &Self) -> bool
fn intersect_changed(&mut self, other: &Self) -> bool
Removes all ones in self not in other, returning true if self changed.
Sourcefn subtract_changed(&mut self, other: &Self) -> bool
fn subtract_changed(&mut self, other: &Self) -> bool
Removes all ones from other in self, returning true if self changed.
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.