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.