2
0
Fork 0
mirror of https://github.com/bazelbuild/bazel-skylib synced 2024-11-28 08:43:51 +00:00
bazel-skylib/docs/new_sets_doc.md
nickgooding 31ab4c8bd2
feat: bzlmod setup (#385)
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>
2022-08-30 14:57:34 -04:00

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.