import { Skiplist } from "https://deno.land/x/willow@0.2.1/mod.browser.ts";
Constructors
new
Skiplist(opts: SkiplistOpts<LogicalKey, LogicalValue, SummaryData>)Properties
private
kv: KvDriverprivate
logicalValueEq: (a: LogicalValue, b: LogicalValue) => booleanprivate
monoid: LiftingMonoid<[LogicalKey, LogicalValue], [SummaryData, number]>Methods
private
getLeftNode(key: PhysicalKey<LogicalKey>): Promise<Node<LogicalKey, LogicalValue, SummaryData> | undefined>Get the node to the left of the given key in the skiplist. Returns undefined if the given key is the leftmost item of its layer.
private
getRightNode(key: PhysicalKey<LogicalKey>): Promise<Node<LogicalKey, LogicalValue, SummaryData> | undefined>Get the node to the right of the given key in the skiplist. Returns undefined if the given key is the rightmost item of its layer.
private
setup()private
summariseSingleLayer(start: PhysicalKey<LogicalKey>, end?: LogicalKey): Promise<[SummaryData, number]>Summarise nodes on a single layer until reaching a node whose logical key is >= end
(the end
node is excluded). If end
is undefined, summarises untl the end of the layer.
Returns the empty summary if the sequence of nodes in question is empty.
allEntries(reverse?: boolean): AsyncIterable<{ key: LogicalKey; value: LogicalValue; }>
entries(): AsyncIterable<{ key: LogicalKey; value: LogicalValue; }>
start: LogicalKey | undefined,
end: LogicalKey | undefined,
opts?: { limit?: number; reverse?: boolean; },
get(key: LogicalKey): Promise<LogicalValue | undefined>
insert(): Promise<void>
print()
remove(key: LogicalKey): Promise<boolean>
setMaxHeight(level: number)
summarise(start?: LogicalKey, end?: LogicalKey): Promise<{ fingerprint: SummaryData; size: number; }>