Struct gtk4::Bitset [−][src]
pub struct Bitset(_);
Expand description
A Bitset
represents a set of unsigned integers.
Another name for this data structure is “bitmap”.
The current implementation is based on roaring bitmaps.
A bitset allows adding a set of integers and provides support for set operations
like unions, intersections and checks for equality or if a value is contained
in the set. Bitset
also contains various functions to query metadata about
the bitset, such as the minimum or maximum values or its size.
The fastest way to iterate values in a bitset is BitsetIter
.
The main use case for Bitset
is implementing complex selections for
SelectionModel
.
Implementations
Sets self
to be the symmetric difference of self
and other
.
The symmetric difference is set self
to contain all values that
were either contained in self
or in other
, but not in both.
This operation is also called an XOR.
It is allowed for self
and other
to be the same bitset. The bitset
will be emptied in that case.
other
the Bitset
to compute the difference from
Returns the largest value in self
.
If self
is empty, 0 is returned.
Returns
The largest value in self
Returns the smallest value in self
.
If self
is empty, G_MAXUINT
is returned.
Returns
The smallest value in self
Gets the number of values that were added to the set.
For example, if the set is empty, 0 is returned.
Note that this function returns a guint64
, because when all
values are set, the return value is G_MAXUINT + 1
. Unless you
are sure this cannot happen (it can’t with GListModel
), be sure
to use a 64bit type.
Returns
The number of values in the set.
Gets the number of values that are part of the set from first
to last
(inclusive).
Note that this function returns a guint64
, because when all values are
set, the return value is G_MAXUINT + 1
. Unless you are sure this cannot
happen (it can’t with GListModel
), be sure to use a 64bit type.
first
the first element to include
last
the last element to include
Returns
The number of values in the set from first
to last
.
Removes all values from the bitset so that it is empty again.
Shifts all values in self
to the left by amount
.
Values smaller than amount
are discarded.
amount
amount to shift all values to the left
Shifts all values in self
to the right by amount
.
Values that end up too large to be held in a guint
are discarded.
amount
amount to shift all values to the right
This is a support function for GListModel
handling, by mirroring
the GlistModel::items-changed
signal.
First, it “cuts” the values from position
to removed
from
the bitset. That is, it removes all those values and shifts
all larger values to the left by removed
places.
Then, it “pastes” new room into the bitset by shifting all values
larger than position
by added
spaces to the right. This frees
up space that can then be filled.
position
position at which to slice
removed
number of values to remove
added
number of values to add
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for Bitset
impl UnwindSafe for Bitset
Blanket Implementations
Mutably borrows from an owned value. Read more