Sha256: 2c6fed9217b353e2820003cca9a9a1491a9717ae985d2f53bdd120e5f5e6be81
Contents?: true
Size: 1.5 KB
Versions: 15
Compression:
Stored size: 1.5 KB
Contents
import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment'; export type MemoState = { lastKey: number; lastNeedle: number; lastIndex: number; }; export declare let found: boolean; /** * A binary search implementation that returns the index if a match is found. * If no match is found, then the left-index (the index associated with the item that comes just * before the desired index) is returned. To maintain proper sort order, a splice would happen at * the next index: * * ```js * const array = [1, 3]; * const needle = 2; * const index = binarySearch(array, needle, (item, needle) => item - needle); * * assert.equal(index, 0); * array.splice(index + 1, 0, needle); * assert.deepEqual(array, [1, 2, 3]); * ``` */ export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number; export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; export declare function memoizedState(): MemoState; /** * This overly complicated beast is just to record the last tested line/column and the resulting * index, allowing us to skip a few tests if mappings are monotonically increasing. */ export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number;
Version data entries
15 entries across 15 versions & 2 rubygems