Creates MODULE.bazel and WORKSPACE.bzlmod files to enable bazel-skylib to work with the `--experimental_enable_bzlmod` flag. rules_go has been updated as the previously used version is not available in the BCR. stardoc has been updated due to a strange issue with Bzlmod enabled that caused the `diff_test` and `unittest` docs to be generated without any contents that was magically fixed upon updating. bazelbuild/bazel-central-registry#124 Co-authored-by: Alexandre Rostovtsev <arostovtsev@google.com>
7.8 KiB
Executable file
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.