Skylib module containing common hash-set algorithms.
An empty set can be created using: sets.make()
, or it can be created with some starting values if you pass it an sequence: sets.make([1, 2, 3])
. This returns a struct containing all of the values as keys in a dictionary - this means that all passed in values must be hashable. The values in the set can be retrieved using sets.to_list(my_set)
.
An arbitrary object can be tested whether it is a set generated by sets.make()
or not with the types.is_set()
method in types.bzl.
Checks for the existence of an element in a set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
e | The element to look for. | none |
RETURNS
True if the element exists in the set, False if the element does not.
Creates a new set from another set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
RETURNS
A new set containing the same elements as s
.
Returns the elements in a
that are not in b
.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
b | A set, as returned by sets.make() . | none |
RETURNS
A set containing the elements that are in a
but not in b
.
Returns whether two sets are disjoint.
Two sets are disjoint if they have no elements in common.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
b | A set, as returned by sets.make() . | none |
RETURNS
True if a
and b
are disjoint, False otherwise.
Inserts an element into the set.
Element must be hashable. This mutates the original set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
e | The element to be inserted. | none |
RETURNS
The set s
with e
included.
Returns the intersection of two sets.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
b | A set, as returned by sets.make() . | none |
RETURNS
A set containing the elements that are in both a
and b
.
Returns whether two sets are equal.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
b | A set, as returned by sets.make() . | none |
RETURNS
True if a
is equal to b
, False otherwise.
Returns whether a
is a subset of b
.
PARAMETERS
Name | Description | Default Value |
---|---|---|
a | A set, as returned by sets.make() . | none |
b | A set, as returned by sets.make() . | none |
RETURNS
True if a
is a subset of b
, False otherwise.
Returns the number of elements in a set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
RETURNS
An integer representing the number of elements in the set.
Creates a new set.
All elements must be hashable.
PARAMETERS
Name | Description | Default Value |
---|---|---|
elements | Optional sequence to construct the set out of. | None |
RETURNS
A set containing the passed in values.
Removes an element from the set.
Element must be hashable. This mutates the original set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
e | The element to be removed. | none |
RETURNS
The set s
with e
removed.
Returns a string value representing the set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
RETURNS
A string representing the set.
Returns a string value representing the set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
RETURNS
A string representing the set.
Creates a list from the values in the set.
PARAMETERS
Name | Description | Default Value |
---|---|---|
s | A set, as returned by sets.make() . | none |
RETURNS
A list of values inserted into the set.
Returns the union of several sets.
PARAMETERS
Name | Description | Default Value |
---|---|---|
args | An arbitrary number of sets. | none |
RETURNS
The set union of all sets in *args
.