UNPKG

@electric-sql/d2ts

Version:

D2TS is a TypeScript implementation of Differential Dataflow.

40 lines (39 loc) 1.61 kB
import { Version, Antichain } from './order.js'; import { MultiSet } from './multiset.js'; import { DefaultMap } from './utils.js'; type VersionMap<T> = DefaultMap<Version, T[]>; export interface IndexType<K, V> { reconstructAt(key: K, requestedVersion: Version): [V, number][]; versions(key: K): Version[]; addValue(key: K, version: Version, value: [V, number]): void; append(other: IndexType<K, V>): void; join<V2>(other: IndexType<K, V2>): [Version, MultiSet<[K, [V, V2]]>][]; compact(compactionFrontier: Antichain, keys: K[]): void; keys(): K[]; has(key: K): boolean; } /** * A map from a difference collection trace's keys -> versions at which * the key has nonzero multiplicity -> (value, multiplicities) that changed. * * Used in operations like join and reduce where the operation needs to * exploit the key-value structure of the data to run efficiently. * * This implementation supports the general case of partially ordered versions. */ export declare class Index<K, V> implements IndexType<K, V> { #private; constructor(); toString(indent?: boolean): string; reconstructAt(key: K, requestedVersion: Version): [V, number][]; get(key: K): VersionMap<[V, number]>; entries(): [K, VersionMap<[V, number]>][]; versions(key: K): Version[]; addValue(key: K, version: Version, value: [V, number]): void; append(other: Index<K, V>): void; join<V2>(other: Index<K, V2>): [Version, MultiSet<[K, [V, V2]]>][]; compact(compactionFrontier: Antichain, keys?: K[]): void; keys(): K[]; has(key: K): boolean; } export {};