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

Creates a new set.

All elements must be hashable.

PARAMETERS

NameDescriptionDefault Value
elementsOptional sequence to construct the set out of.None

RETURNS

A set containing the passed in values.

sets.copy

Creates a new set from another set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none

RETURNS

A new set containing the same elements as s.

sets.to_list

Creates a list from the values in the set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none

RETURNS

A list of values inserted into the set.

sets.insert

Inserts an element into the set.

Element must be hashable. This mutates the original set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none
eThe element to be inserted.none

RETURNS

The set s with e included.

sets.contains

Checks for the existence of an element in a set.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
eThe element to look for.none

RETURNS

True if the element exists in the set, False if the element does not.

sets.is_equal

Returns whether two sets are equal.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
bA set, as returned by sets.make().none

RETURNS

True if a is equal to b, False otherwise.

sets.is_subset

Returns whether a is a subset of b.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
bA set, as returned by sets.make().none

RETURNS

True if a is a subset of b, False otherwise.

sets.disjoint

Returns whether two sets are disjoint.

Two sets are disjoint if they have no elements in common.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
bA set, as returned by sets.make().none

RETURNS

True if a and b are disjoint, False otherwise.

sets.intersection

Returns the intersection of two sets.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
bA set, as returned by sets.make().none

RETURNS

A set containing the elements that are in both a and b.

sets.union

Returns the union of several sets.

PARAMETERS

NameDescriptionDefault Value
argsAn arbitrary number of sets.none

RETURNS

The set union of all sets in *args.

sets.difference

Returns the elements in a that are not in b.

PARAMETERS

NameDescriptionDefault Value
aA set, as returned by sets.make().none
bA set, as returned by sets.make().none

RETURNS

A set containing the elements that are in a but not in b.

sets.length

Returns the number of elements in a set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none

RETURNS

An integer representing the number of elements in the set.

sets.remove

Removes an element from the set.

Element must be hashable. This mutates the original set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none
eThe element to be removed.none

RETURNS

The set s with e removed.

sets.repr

Returns a string value representing the set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none

RETURNS

A string representing the set.

sets.str

Returns a string value representing the set.

PARAMETERS

NameDescriptionDefault Value
sA set, as returned by sets.make().none

RETURNS

A string representing the set.