interface RSetBase<T,Tp>
undocumented
Companion namespace: RSetBase
Extends: VariantSetBase<T,Tp>
Implemented by: RSetBase.NonEmpty<T,Tp>
Type parameters
| Name | Constraints | Default | Description |
|---|---|---|---|
| T | undocumented | ||
| Tp | RSetBase.Types | RSetBase.Types | undocumented |
Properties
context
Returns the context associated to this collection instance.
contextcontext associated to this collection instance.isEmpty
Returns true if the collection is empty.
isEmptysize
Returns the number of values in the collection.
sizeMethods
[Symbol.iterator]
Returns a FastIterator instance used to iterate over the values of this Iterable.
[Symbol.iterator]FastIterator instance used to iterate over the values of this Iterable.add
Returns the collection with given value added.
addvalue added.addAll
Returns the collection with the values in given values StreamSource added.
addAllvalues StreamSource added.Definitions
addAll(values: StreamSource.NonEmpty<T>): WithElem<Tp, T>['nonEmpty'];
addAll(values: StreamSource<T>): WithElem<Tp, T>['normal'];
Parameters
| Name | Type | Description |
|---|---|---|
values | StreamSource.NonEmpty<T> | a StreamSource containing values to add |
HashSet.of(1, 2, 3).addAll(10, 11).toArray() // => [1, 2, 3, 10, 11]
assumeNonEmpty
Returns the same collection typed as non-empty.
assumeNonEmptyDefinition
assumeNonEmpty(): WithElem<Tp, T>['nonEmpty'];
RimbuError.EmptyCollectionAssumedNonEmptyError if the collection is empty
HashSet.empty().assumeNonEmpty() // => throws RimbuError.EmptyCollectionAssumedNonEmptyError
HashSet.from([[0, 1]]).assumeNonEmpty() // => List.NonEmpty(0, 1, 2)
Overrides
difference
Returns a collection where each value of given other StreamSource is removed from this collection.
differenceother StreamSource is removed from this collection.Definition
difference<U = T>(other: StreamSource<RelatedTo<T, U>>): WithElem<Tp, T>['normal'];
Type parameters
| Name | Default | Description |
|---|---|---|
| U | T |
Parameters
| Name | Type | Description |
|---|---|---|
other | StreamSource<RelatedTo<T, U>> | a StreamSource containing values |
HashSet.of(1, 2, 3).difference(HashSet.of(1, 3)).toArray() // => [2]
Overrides
filter
Returns a collection containing only those entries that satisfy given pred predicate.
filterpred predicate.Definitions
filter<TF extends T>(pred: (value: T, index: number, halt: () => void) => value is TF, options?: {
negate?: false | undefined;
}): WithElem<Tp, TF>['normal'];
filter<TF extends T>(pred: (value: T, index: number, halt: () => void) => value is TF, options: {
negate: true;
}): WithElem<Tp, Exclude<T, TF>>['normal'];
filter(pred: (value: T, index: number, halt: () => void) => boolean, options?: {
negate?: boolean;
}): WithElem<Tp, T>['normal'];
Type parameters
| Name | Constraints | Description |
|---|---|---|
| TF | T |
Parameters
| Name | Type | Description |
|---|---|---|
pred | (value: T, index: number, halt: () => void) => value is TF | a predicate function receiving: - value: the next value- index: the entry index- halt: a function that, when called, ensures no next elements are passed |
options | {negate?: false | undefined;} | (optional) an object containing the following properties: - negate: (default: false) when true will negate the predicate |
if the predicate is a type guard, the return type is automatically inferred
HashSet.of(1, 2, 3).filter(value < 3).toArray()
// => [1, 2]
Overrides
forEach
Performs given function f for each value of the collection, using given state as initial traversal state.
forEachf for each value of the collection, using given state as initial traversal state.Definition
forEach(f: (value: T, index: number, halt: () => void) => void, options?: {
state?: TraverseState;
}): void;
Parameters
| Name | Type | Description |
|---|---|---|
f | (value: T, index: number, halt: () => void) => void | the function to perform for each element, receiving: - value: the next element- index: the index of the element- halt: a function that, if called, ensures that no new elements are passed |
options | {state?: TraverseState;} |
HashSet.of(1, 2, 3).forEach((value, i, halt) => {
console.log([value, i]);
if (i >= 1) halt();
})
// => logs [1, 0] [2, 1]
O(N)
Overrides
has
Returns true if given value is in the collection.
hasvalue is in the collection.intersect
Returns a collection containing values that are both in this collection, and in the given other StreamSource.
intersectother StreamSource.Definition
intersect<U = T>(other: StreamSource<RelatedTo<T, U>>): WithElem<Tp, T>['normal'];
Type parameters
| Name | Default | Description |
|---|---|---|
| U | T |
Parameters
| Name | Type | Description |
|---|---|---|
other | StreamSource<RelatedTo<T, U>> | a StreamSource containing values |
HashSet.of(1, 2, 3).interface(HashSet.of(1, 3)).toArray() // => [1, 3]
Overrides
nonEmpty
Returns true if there is at least one entry in the collection, and instructs the compiler to treat the collection as a .NonEmpty type.
nonEmptyDefinition
nonEmpty(): this is WithElem<Tp, T>['nonEmpty'];
const m: HashSet<number> = HashSet.of(1, 2, 2)
m.stream().first(0) // compiler allows fallback value since the Stream may be empty
if (m.nonEmpty()) {
m.stream().first(0) // compiler error: fallback value not allowed since Stream is not empty
}
Overrides
remove
Returns the collection with given value removed.
removevalue removed.Definition
remove<U = T>(value: RelatedTo<T, U>): WithElem<Tp, T>['normal'];
Type parameters
| Name | Default | Description |
|---|---|---|
| U | T |
Parameters
| Name | Type | Description |
|---|---|---|
value | RelatedTo<T, U> | the value to remove |
const s = HashSet.of(1, 2, 3)
s.remove(2).toArray() // => [1, 3]
s.remove(10).toArray() // => [1, 2, 3]
Overrides
removeAll
Returns the collection with all values in the given values StreamSource removed.
removeAllvalues StreamSource removed.Definition
removeAll<U = T>(values: StreamSource<RelatedTo<T, U>>): WithElem<Tp, T>['normal'];
Type parameters
| Name | Default | Description |
|---|---|---|
| U | T |
Parameters
| Name | Type | Description |
|---|---|---|
values | StreamSource<RelatedTo<T, U>> | a StreamSource containing values to remove |
HashSet.of(1, 2, 3).removeAll([1, 3]).toArray()
// => [2]
Overrides
stream
Returns a Stream containing all elements of this collection.
streamsymDifference
Returns a collection of the values that are either in this collection or in the other StreamSource, but not in both.
symDifferenceother StreamSource, but not in both.Definition
symDifference(other: StreamSource<T>): WithElem<Tp, T>['normal'];
Parameters
| Name | Type | Description |
|---|---|---|
other | StreamSource<T> | a StreamSource containing values |
HashSet.of(1, 2, 3).symDifference([2, 4]).toArray()
// => [1, 3, 4]
toArray
Returns an array containing all values in this collection.
toArraytoBuilder
Returns a builder object containing the values of this collection.
toBuildertoJSON
Returns a JSON representation of this collection.
toJSONtoString
Returns a string representation of this collection.
toStringunion
Returns a collection containing all values from this collection and all values of given other StreamSource.
unionother StreamSource.Definitions
union(other: StreamSource.NonEmpty<T>): WithElem<Tp, T>['nonEmpty'];
union(other: StreamSource<T>): WithElem<Tp, T>['normal'];
Parameters
| Name | Type | Description |
|---|---|---|
other | StreamSource.NonEmpty<T> | a StreamSource containing values |
HashSet.of(1, 2, 3).union(HashSet.of(2, 4, 6)).toArray()
// => [1, 2, 3, 4, 6]