bazel-skylib/docs/new_sets_doc.md

7.5 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.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.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.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.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.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.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.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.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.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.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.

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.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.