@rimbu/sorted
Version:
Immutable SortedMap and SortedSet implementations for TypeScript
39 lines (38 loc) • 2.25 kB
text/typescript
import { Token } from '@rimbu/base';
import { OptLazy, OptLazyOr, type RelatedTo, Update } from '@rimbu/common';
import { type StreamSource } from '@rimbu/stream';
import type { SortedMap } from '@rimbu/sorted/map';
import type { SortedMapContext } from '@rimbu/sorted/map-custom';
import { SortedBuilder } from '@rimbu/sorted/common';
export declare class SortedMapBuilder<K, V> extends SortedBuilder<readonly [K, V]> implements SortedMap.Builder<K, V> {
readonly context: SortedMapContext<K>;
source?: undefined | SortedMap<K, V>;
_entries?: undefined | (readonly [K, V])[];
_children?: undefined | SortedMapBuilder<K, V>[];
size: number;
constructor(context: SortedMapContext<K>, source?: undefined | SortedMap<K, V>, _entries?: undefined | (readonly [K, V])[], _children?: undefined | SortedMapBuilder<K, V>[], size?: number);
createNew(source?: undefined | SortedMap<K, V>, _entries?: undefined | (readonly [K, V])[], _children?: undefined | SortedMapBuilder<K, V>[], size?: undefined | number): SortedMapBuilder<K, V>;
prepareMutate(): void;
get children(): SortedMapBuilder<K, V>[];
set children(value: SortedMapBuilder<K, V>[]);
get: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O;
hasKey: <UK>(key: RelatedTo<K, UK>) => boolean;
addEntry: (entry: readonly [K, V]) => boolean;
addEntries: (source: StreamSource<readonly [K, V]>) => boolean;
set: (key: K, value: V) => boolean;
removeKey: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O;
removeKeys: <UK>(keys: StreamSource<RelatedTo<K, UK>>) => boolean;
modifyAt: (key: K, options: {
ifNew?: OptLazyOr<V, Token>;
ifExists?: ((currentValue: V, remove: Token) => V | Token) | V;
}) => boolean;
updateAt: <O>(key: K, update: Update<V>, otherwise?: OptLazy<O>) => V | O;
build: () => SortedMap<K, V>;
buildMapValues: <V2>(f: (value: V, key: K) => V2) => SortedMap<K, V2>;
addEntryInternal(entry: readonly [K, V]): boolean;
removeInternal<O>(key: K, otherwise?: OptLazy<O>): V | O;
modifyAtInternal(key: K, options: {
ifNew?: OptLazyOr<V, Token>;
ifExists?: ((currentValue: V, remove: Token) => V | Token) | V;
}): boolean;
}