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.
sets.make(elements)
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.
sets.copy(s)
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
.
sets.to_list(s)
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.
sets.insert(s, e)
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.
sets.contains(a, e)
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.
sets.is_equal(a, 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.
sets.is_subset(a, b)
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.
sets.disjoint(a, 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.
sets.intersection(a, b)
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
.
sets.union(args)
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
.
sets.difference(a, b)
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
.
sets.length(s)
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.
sets.remove(s, e)
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.
sets.repr(s)
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.
sets.str(s)
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.