Skip to main content

class MultiSetBuilder<T,Tp,TpG>

undocumented

Implements: MultiSetBase.Builder<T,Tp>

Type parameters

NameConstraintsDefaultDescription
Tundocumented
TpContextImplTypesundocumented
TpGWithElem<Tp, T>WithElem<Tp, T>undocumented

Properties

_countMap

undocumented

Definition

_countMap?: RMap.Builder<T, number>;

_lock

undocumented

Definition

_lock: number;

_size

undocumented

Definition

_size: number;

add

undocumented

Definition

add: (value: T, amount?: number) => boolean;

addAll

undocumented

Definition

addAll: (source: StreamSource<T>) => boolean;

addEntries

undocumented

Definition

addEntries: (entries: StreamSource<readonly [T, number]>) => boolean;

build

undocumented

Definition

build: () => TpG['normal'];

context

undocumented

Definition

readonly context: TpG['context'];

count

undocumented

Definition

count: <U>(value: RelatedTo<T, U>) => number;

countMap

undocumented

Definition

get countMap(): RMap.Builder<T, number>;

forEach

undocumented

Definition

forEach: (f: (value: T, index: number, halt: () => void) => void, options?: {
    state?: TraverseState;
  }) => void;

has

undocumented

Definition

has: <U>(value: RelatedTo<T, U>) => boolean;

isEmpty

undocumented

Definition

get isEmpty(): boolean;

Overrides

Builder.isEmpty

modifyCount

undocumented

Definition

modifyCount: (value: T, update: (currentCount: number) => number) => boolean;

remove

undocumented

Definition

remove: <U>(value: RelatedTo<T, U>, amount?: number | 'ALL') => number;

removeAll

undocumented

Definition

removeAll: <U>(values: StreamSource<RelatedTo<T, U>>, mode: 'SINGLE' | 'ALL') => boolean;

removeAllEvery

undocumented

Definition

removeAllEvery: <U>(values: StreamSource<RelatedTo<T, U>>) => boolean;

removeAllSingle

undocumented

Definition

removeAllSingle: <U>(values: StreamSource<RelatedTo<T, U>>) => boolean;

setCount

undocumented

Definition

setCount: (value: T, amount: number) => boolean;

size

undocumented

Definition

get size(): number;

Overrides

Builder.size

sizeDistinct

undocumented

Definition

get sizeDistinct(): number;

Overrides

Builder.sizeDistinct

source

undocumented

Definition

source?: TpG["nonEmpty"] | undefined;

Methods

add

Adds given value to the builder.

Definition

add(value: T, amount?: number): boolean;

Parameters

NameTypeDescription
valueT
amountnumber
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.add(2) // => true
s.add(3, 5) // => true
s.add(3, 0) // => false

Overrides

Builder.add

addAll

Adds the values in given values StreamSource to the builder.

Definition

addAll(values: StreamSource<T>): boolean;

Parameters

NameTypeDescription
valuesStreamSource<T>
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.addAll(1, 3) // => false
s.addAll(2, 10) // => true

Overrides

Builder.addAll

addEntries

Adds for each tuple of a value and amount in the given entries, the amount of values to the builder.

Definition

addEntries(entries: StreamSource<readonly [T, number]>): boolean;

Parameters

NameTypeDescription
entriesStreamSource<readonly [T, number]>
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.addEntries([[1, 2], [2, 3]]) // => true
s.addEntries([[1, 0], [3, 0]]) // => false

Overrides

Builder.addEntries

build

Returns an immutable instance containing the values in this builder.

Definition

build(): WithElem<Tp, T>['normal'];

example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
const s2: HashMultiSet<number> = m.build()

Overrides

Builder.build

checkLock

undocumented

Definition

checkLock(): void;

count

Returns the amount of given value in the builder.

Definition

count<U = T>(value: RelatedTo<T, U>): number;

Type parameters

NameDefaultDescription
UT

Parameters

NameTypeDescription
valueRelatedTo<T, U>the value to look for
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.count(10) // => 0
s.count(2) // => 2

Overrides

Builder.count

forEach

Performs given function f 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

NameTypeDescription
f(value: T, index: number, halt: () => void) => voidthe function to perform for each value, receiving:
- value: the next value
- index: the index of the value
- halt: a function that, if called, ensures that no new values are passed
options{
      state?: TraverseState;
    }
(optional) an object containing the following properties:
- state: (optional) the traversal state
throws

RibuError.ModifiedBuilderWhileLoopingOverItError if the builder is modified while looping over it

example
HashMultiSet.of(1, 2, 2, 3).toBuilder().forEach((entry, i, halt) => {
console.log(entry)
if (i >= 1) halt()
})
// => logs [1, 1] [2, 2]

Overrides

Builder.forEach

has

Returns true if the given value is present in the builder.

Definition

has<U = T>(value: RelatedTo<T, U>): boolean;

Type parameters

NameDefaultDescription
UT

Parameters

NameTypeDescription
valueRelatedTo<T, U>the value to look for
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.has(2) // => true
s.has(10) // => false

Overrides

Builder.has

modifyCount

Changes the amount of given value in the builder according to the result of given update function.

Definition

modifyCount(value: T, update: (currentCount: number) => number): boolean;

Parameters

NameTypeDescription
valueTthe value of which to update the amount
update(currentCount: number) => number
note

if the given value does not exists, the update function is called with 0. @note if the result of update is <= 0, the value will be removed (or not added)

example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.modifyCount(3, v => v) // => false
s.modifyCount(3, v => v + 1) // => true
s.modifyCount(2, v => v + 1) // => true

Overrides

Builder.modifyCount

remove

Removes given amount or all of given value from the builder.

Definition

remove<U = T>(value: RelatedTo<T, U>, amount?: number | 'ALL'): number;

Type parameters

NameDefaultDescription
UT

Parameters

NameTypeDescription
valueRelatedTo<T, U>the value to remove
amountnumber | 'ALL'
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.remove(10) // => 0
s.remove(1, 2) // => 1
s.remove(2, 2) // => 2

Overrides

Builder.remove

removeAllEvery

Removes every instance of the given values from the builder.

Definition

removeAllEvery<U = T>(values: StreamSource<RelatedTo<T, U>>): boolean;

Type parameters

NameDefaultDescription
UT

Parameters

NameTypeDescription
valuesStreamSource<RelatedTo<T, U>>
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.removeAllEvery([10, 11]) // => false
s.removeAllEvery([1, 11]) // => true

Overrides

Builder.removeAllEvery

removeAllSingle

Removes every single value in given values from the builder.

Definition

removeAllSingle<U = T>(values: StreamSource<RelatedTo<T, U>>): boolean;

Type parameters

NameDefaultDescription
UT

Parameters

NameTypeDescription
valuesStreamSource<RelatedTo<T, U>>
example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.removeAllSingle([10, 11]) // => false
s.removeAllSingle([1, 11]) // => true

Overrides

Builder.removeAllSingle

setCount

Sets the amount of given value in the collection to amount.

Definition

setCount(value: T, amount: number): boolean;

Parameters

NameTypeDescription
valueTthe value for which to set the amount
amountnumber
note

if amount <= 0, the value will be removed

example
const s = HashMultiSet.of(1, 2, 2).toBuilder()
s.setCount(1, 1) // => false
s.setCount(1, 3) // => true

Overrides

Builder.setCount