apache-arrow
Version:
Apache Arrow columnar in-memory format
62 lines (61 loc) • 2.48 kB
TypeScript
import { Vector } from '../vector';
import { StructVector } from './struct';
import { DataType, Struct } from '../type';
/** @ignore */ declare const kParent: unique symbol;
/** @ignore */ declare const kRowIndex: unique symbol;
/** @ignore */ declare const kKeyToIdx: unique symbol;
/** @ignore */ declare const kIdxToVal: unique symbol;
/** @ignore */ declare const kCustomInspect: unique symbol;
declare abstract class Row<K extends PropertyKey = any, V = any> implements Map<K, V> {
readonly size: number;
readonly [Symbol.toStringTag]: string;
protected [kRowIndex]: number;
protected [kParent]: Vector<Struct>;
protected [kKeyToIdx]: Map<K, number>;
protected [kIdxToVal]: V[];
constructor(parent: Vector<Struct>, numKeys: number);
abstract keys(): IterableIterator<K>;
abstract values(): IterableIterator<V>;
abstract getKey(idx: number): K;
abstract getIndex(key: K): number;
abstract getValue(idx: number): V;
abstract setValue(idx: number, val: V): void;
entries(): IterableIterator<[K, V]>;
has(key: K): boolean;
get(key: K): V | undefined;
set(key: K, val: V): this;
clear(): void;
delete(_: K): boolean;
[Symbol.iterator](): IterableIterator<[K, V]>;
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
toArray(): V[];
toJSON(): any;
inspect(): string;
[kCustomInspect](): string;
toString(): string;
protected static [Symbol.toStringTag]: string;
}
export declare class MapRow<K extends DataType = any, V extends DataType = any> extends Row<K['TValue'], V['TValue'] | null> {
constructor(slice: Vector<Struct<{
key: K;
value: V;
}>>);
keys(): IterableIterator<any>;
values(): IterableIterator<any>;
getKey(idx: number): K['TValue'];
getIndex(key: K['TValue']): number;
getValue(index: number): V['TValue'] | null;
setValue(index: number, value: V['TValue'] | null): void;
}
export declare class StructRow<T extends {
[key: string]: DataType;
} = any> extends Row<keyof T, T[keyof T]['TValue'] | null> {
constructor(parent: StructVector<T>);
keys(): Generator<keyof T, void, unknown>;
values(): Generator<T[string]["TValue"] | null, void, unknown>;
getKey(idx: number): keyof T;
getIndex(key: keyof T): number;
getValue(index: number): T[keyof T]['TValue'] | null;
setValue(index: number, value: T[keyof T]['TValue'] | null): void;
}
export {};