@orbit/immutable
Version:
Lightweight immutable library used by Orbit.js.
55 lines (54 loc) • 1.62 kB
TypeScript
/**
* Code based on: https://github.com/mattbierner/hamt
* Author: Matt Bierner
* MIT license
*
* Which is based on: https://github.com/exclipy/pdata
*/
export declare class HAMTMapIterator<T> implements IterableIterator<T> {
private v;
constructor(v: any);
next(): any;
[Symbol.iterator](): this;
}
export interface HAMTMapConfig {
keyEq?: Function;
hash?: Function;
}
export declare class HAMTMap {
private _map;
private _editable;
private _edit;
private _config;
private _root;
private _size;
constructor(editable?: boolean, edit?: number, config?: HAMTMapConfig, root?: {
__hamt_isEmpty: boolean;
_modify(edit: any, keyEq: any, shift: any, f: any, h: any, k: any, size: any): any;
}, size?: number);
get size(): number;
setTree(newRoot: any, newSize: number): any;
tryGetHash(alt: any, hash: any, key: any): any;
tryGet(alt: any, key: any): any;
getHash(hash: any, key: any): any;
get(key: any, alt?: any): any;
hasHash(hash: any, key: any): boolean;
has(key: any): boolean;
isEmpty(): boolean;
modifyHash(hash: any, key: any, f: any): any;
modify(key: any, f: any): any;
setHash(hash: any, key: any, value: any): any;
set(key: any, value: any): any;
deleteHash(hash: any, key: any): any;
removeHash(hash: any, key: any): any;
remove(key: any): any;
beginMutation(): any;
endMutation(): any;
mutate(f: any): any;
entries(): any;
keys(): any;
values(): any;
fold(f: any, z: any): any;
forEach(f: any): any;
[Symbol.iterator](): any;
}