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.