UNPKG

@thi.ng/trie

Version:

Trie-based ES6-like Map data structures with prefix search/query support

42 lines 1.65 kB
import type { Fn2, IObjectOf, Maybe, Pair } from "@thi.ng/api"; export declare class TrieMap<T> { next: IObjectOf<TrieMap<T>>; val?: T; protected n: number; constructor(pairs?: Iterable<Pair<string, T>>); get size(): number; [Symbol.iterator](): Generator<Pair<string, T>, void, unknown>; keys(prefix?: string, includePrefix?: boolean): Generator<string, void, unknown>; values(prefix?: string): Generator<NonNullable<T>, void, unknown>; entries(prefix?: string, includePrefix?: boolean): Generator<Pair<string, T>, void, unknown>; clear(): void; has(key: string): boolean; hasPrefix(prefix: string): boolean; get(key: string, notFound?: T): Maybe<T>; find(key: string): TrieMap<T> | undefined; /** * Returns longest known prefix for `key`. Returns undefined if given key * has no partial matches. * * @param key - */ knownPrefix(key: string): string | undefined; hasKnownPrefix(key: string): boolean; set(key: string, val: T): void; into(pairs: Iterable<Pair<string, T>>): void; delete(prefix: string): boolean; protected iterate<V>(fn: Fn2<string, TrieMap<T>, V>, prefix?: string, includePrefix?: boolean): Generator<V, void, unknown>; } export declare const defTrieMap: <T>(pairs?: Iterable<Pair<string, T>>) => TrieMap<T>; export type SerializedTrieMap<T> = { next: IObjectOf<SerializedTrieMap<T>>; val?: T; }; /** * Reconstruct a {@link MultiTrie} from serialized JSON. * * @param src * @param opts */ export declare const defTrieMapFromJSON: <V>(src: SerializedTrieMap<V>) => TrieMap<V>; //# sourceMappingURL=trie-map.d.ts.map