| <!-- Generated with Stardoc: http://skydoc.bazel.build --> |
| |
| 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. |
| |
| <a id="sets.contains"></a> |
| |
| ## sets.contains |
| |
| <pre> |
| sets.contains(<a href="#sets.contains-a">a</a>, <a href="#sets.contains-e">e</a>) |
| </pre> |
| |
| Checks for the existence of an element in a set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.contains-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.contains-e"></a>e | The element to look for. | none | |
| |
| **RETURNS** |
| |
| True if the element exists in the set, False if the element does not. |
| |
| |
| <a id="sets.copy"></a> |
| |
| ## sets.copy |
| |
| <pre> |
| sets.copy(<a href="#sets.copy-s">s</a>) |
| </pre> |
| |
| Creates a new set from another set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.copy-s"></a>s | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A new set containing the same elements as `s`. |
| |
| |
| <a id="sets.difference"></a> |
| |
| ## sets.difference |
| |
| <pre> |
| sets.difference(<a href="#sets.difference-a">a</a>, <a href="#sets.difference-b">b</a>) |
| </pre> |
| |
| Returns the elements in `a` that are not in `b`. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.difference-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.difference-b"></a>b | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A set containing the elements that are in `a` but not in `b`. |
| |
| |
| <a id="sets.disjoint"></a> |
| |
| ## sets.disjoint |
| |
| <pre> |
| sets.disjoint(<a href="#sets.disjoint-a">a</a>, <a href="#sets.disjoint-b">b</a>) |
| </pre> |
| |
| Returns whether two sets are disjoint. |
| |
| Two sets are disjoint if they have no elements in common. |
| |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.disjoint-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.disjoint-b"></a>b | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| True if `a` and `b` are disjoint, False otherwise. |
| |
| |
| <a id="sets.insert"></a> |
| |
| ## sets.insert |
| |
| <pre> |
| sets.insert(<a href="#sets.insert-s">s</a>, <a href="#sets.insert-e">e</a>) |
| </pre> |
| |
| Inserts an element into the set. |
| |
| Element must be hashable. This mutates the original set. |
| |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.insert-s"></a>s | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.insert-e"></a>e | The element to be inserted. | none | |
| |
| **RETURNS** |
| |
| The set `s` with `e` included. |
| |
| |
| <a id="sets.intersection"></a> |
| |
| ## sets.intersection |
| |
| <pre> |
| sets.intersection(<a href="#sets.intersection-a">a</a>, <a href="#sets.intersection-b">b</a>) |
| </pre> |
| |
| Returns the intersection of two sets. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.intersection-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.intersection-b"></a>b | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A set containing the elements that are in both `a` and `b`. |
| |
| |
| <a id="sets.is_equal"></a> |
| |
| ## sets.is_equal |
| |
| <pre> |
| sets.is_equal(<a href="#sets.is_equal-a">a</a>, <a href="#sets.is_equal-b">b</a>) |
| </pre> |
| |
| Returns whether two sets are equal. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.is_equal-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.is_equal-b"></a>b | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| True if `a` is equal to `b`, False otherwise. |
| |
| |
| <a id="sets.is_subset"></a> |
| |
| ## sets.is_subset |
| |
| <pre> |
| sets.is_subset(<a href="#sets.is_subset-a">a</a>, <a href="#sets.is_subset-b">b</a>) |
| </pre> |
| |
| Returns whether `a` is a subset of `b`. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.is_subset-a"></a>a | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.is_subset-b"></a>b | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| True if `a` is a subset of `b`, False otherwise. |
| |
| |
| <a id="sets.length"></a> |
| |
| ## sets.length |
| |
| <pre> |
| sets.length(<a href="#sets.length-s">s</a>) |
| </pre> |
| |
| Returns the number of elements in a set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.length-s"></a>s | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| An integer representing the number of elements in the set. |
| |
| |
| <a id="sets.make"></a> |
| |
| ## sets.make |
| |
| <pre> |
| sets.make(<a href="#sets.make-elements">elements</a>) |
| </pre> |
| |
| Creates a new set. |
| |
| All elements must be hashable. |
| |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.make-elements"></a>elements | Optional sequence to construct the set out of. | `None` | |
| |
| **RETURNS** |
| |
| A set containing the passed in values. |
| |
| |
| <a id="sets.remove"></a> |
| |
| ## sets.remove |
| |
| <pre> |
| sets.remove(<a href="#sets.remove-s">s</a>, <a href="#sets.remove-e">e</a>) |
| </pre> |
| |
| Removes an element from the set. |
| |
| Element must be hashable. This mutates the original set. |
| |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.remove-s"></a>s | A set, as returned by `sets.make()`. | none | |
| | <a id="sets.remove-e"></a>e | The element to be removed. | none | |
| |
| **RETURNS** |
| |
| The set `s` with `e` removed. |
| |
| |
| <a id="sets.repr"></a> |
| |
| ## sets.repr |
| |
| <pre> |
| sets.repr(<a href="#sets.repr-s">s</a>) |
| </pre> |
| |
| Returns a string value representing the set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.repr-s"></a>s | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A string representing the set. |
| |
| |
| <a id="sets.str"></a> |
| |
| ## sets.str |
| |
| <pre> |
| sets.str(<a href="#sets.str-s">s</a>) |
| </pre> |
| |
| Returns a string value representing the set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.str-s"></a>s | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A string representing the set. |
| |
| |
| <a id="sets.to_list"></a> |
| |
| ## sets.to_list |
| |
| <pre> |
| sets.to_list(<a href="#sets.to_list-s">s</a>) |
| </pre> |
| |
| Creates a list from the values in the set. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.to_list-s"></a>s | A set, as returned by `sets.make()`. | none | |
| |
| **RETURNS** |
| |
| A list of values inserted into the set. |
| |
| |
| <a id="sets.union"></a> |
| |
| ## sets.union |
| |
| <pre> |
| sets.union(<a href="#sets.union-args">args</a>) |
| </pre> |
| |
| Returns the union of several sets. |
| |
| **PARAMETERS** |
| |
| |
| | Name | Description | Default Value | |
| | :------------- | :------------- | :------------- | |
| | <a id="sets.union-args"></a>args | An arbitrary number of sets. | none | |
| |
| **RETURNS** |
| |
| The set union of all sets in `*args`. |
| |
| |