UNPKG

@techmely/utils

Version:

Collection of helpful JavaScript / TypeScript utils

53 lines (51 loc) 2.56 kB
type RopeSequenceCallback<T> = (elt: T, index: number) => boolean | void; declare class RopeSequence<T> { static empty: RopeSequence<any>; values: any; static from<T>(values: readonly T[] | RopeSequence<T>): RopeSequence<T>; leafAppend(other: Leaf<T>): RopeSequence<T> | Leaf<T> | undefined; leafPrepend(other: any): RopeSequence<T> | Leaf<T> | undefined; sliceInner(from: number, to: number): Leaf<any>; getInner(index: number): T | undefined; forEachInner(f: RopeSequenceCallback<T>, from: any, to: any, start: any): void; forEachInvertedInner(f: RopeSequenceCallback<T>, from: any, to: any, start: any): void; append(other: RopeSequence<T> | Leaf<T> | readonly T[]): RopeSequence<T> | Leaf<T>; prepend(other: RopeSequence<T> | readonly T[]): RopeSequence<T> | Leaf<T>; appendInner(other: Leaf<T>): Append<T> | Leaf<T>; slice(from?: number, to?: number): RopeSequence<T> | Leaf<T>; get(i: number): T | undefined; forEach(f: (elt: T, index: number) => boolean | void, from?: number, to?: number): void; map<U>(f: RopeSequenceCallback<U>, from?: number, to?: number): U[]; set length(v: number); get length(): number; } declare const GOOD_LEAF_SIZE = 200; declare class Leaf<T = any> extends RopeSequence<T> { values: any; constructor(values: any); flatten(): any; sliceInner(from: number, to: number): Leaf<any>; getInner(i: number): any; forEachInner(f: RopeSequenceCallback<T>, from: number, to: number, start: number): false | undefined; forEachInvertedInner(f: RopeSequenceCallback<T>, from: number, to: number, start: number): false | undefined; leafAppend(other: Leaf<T>): Leaf<any> | undefined; leafPrepend(other: Leaf<T>): Leaf<any> | undefined; set length(v: number); get length(): number; get depth(): number; } declare class Append<T = any> extends RopeSequence<T> { left: Leaf<T>; right: Leaf<T>; depth: number; constructor(left: Leaf<T>, right: Leaf<T>); flatten(): any; getInner(i: number): T | undefined; forEachInner(f: RopeSequenceCallback<T>, from: number, to: number, start: number): false | undefined; forEachInvertedInner(f: RopeSequenceCallback<T>, from: number, to: number, start: number): false | undefined; sliceInner(from: number, to: number): any; leafAppend(other: Leaf<T>): Append<any> | undefined; leafPrepend(other: Leaf<T>): Append<any> | undefined; appendInner(other: Leaf<T>): any; } export { GOOD_LEAF_SIZE, RopeSequence, type RopeSequenceCallback };