BPlusTree
Definitions
def arity(t: BPlusTree[k, v, r]): Int32
SourceReturns the arity of t
.
def computeIfAbsent(f: Unit -> v \ ef, k: k, t: BPlusTree[k, v, r]): v \ ef + r with Order[k]
SourceReturns v
if k => v
is in t
. Otherwise, computes v = f()
, inserts k => v
and returns v
. That is, f
is only evaluated if k
is not in t
.
This operation is atomic.
Thread-safe.
def empty(rc: Region[r]): BPlusTree[k, v, r] \ r
SourceReturns a fresh empty BPlusTree tree of standard arity.
def emptyWithArity(rc: Region[r], m: Int32): BPlusTree[k, v, r] \ r
SourceReturns a fresh empty BPlusTree tree with arity m
(the maximum keys/values per node).
The arity must be at least 3.
def forEach(f: k -> (v -> Unit \ ef), t: BPlusTree[k, v, r]): Unit \ ef + r
SourceApplies f
to all mappings k => v
in t
.
Not thread-safe.
Returns Some(v)
if k => v
is in t
. Otherwise, returns None
.
Returns v
if k => v
is in t
. Otherwise, returns d
.
def isEmpty(t: BPlusTree[k, v, r]): Bool \ r
SourceReturns true
if and only if t
is the empty tree.
Thread-safe.
Returns true
if and only if t
contains the key k
.
Thread-safe.
Returns true
if and only if t
contains the mapping k => v
.
Thread-safe.
Merge src
into dst
modyfing dst
in a left-biased manner.
That is, key collisions are resolved by taking the mapping from src
.
Not thread-safe.
def mergeWith(f: v -> (v -> v \ ef), src: BPlusTree[k, v, r], dst: BPlusTree[k, v, r]): Unit \ r + ef with Order[k]
SourceMerges src
into dst
modyfing dst
. If k => v1
is in src
and k => v2
is
in dst
, updates dst
to with k => f(v1, v2)
.
Not thread-safe.
def minimumKey(t: BPlusTree[k, v, r]): Option[(k, v)] \ r
SourceOptionally returns k => v
where k
is the minimum key.
Not thread-safe.
Updates the tree t
with the mapping k => v
. Replaces any
existing mapping.
Thread-safe.
def putWith(f: v -> (v -> v \ ef), k: k, v: v, t: BPlusTree[k, v, r]): Unit \ ef + r with Order[k]
SourceUpdates t
with k => f(k, v, v1)
if k => v1
is in t
.
Otherwise, updates t
with k => v
.
Thread-safe.
def rangeQueryWith(f: k -> (v -> Unit \ ef), min: k, max: k, t: BPlusTree[k, v, r]): Unit \ r + ef with Order[k]
SourceApplies f
in ascending order to all mappings k => v
in t
where
min <= k <= max
.
Not thread-safe.
def toList(t: BPlusTree[k, v, r]): List[(k, v)] \ r
SourceReturns a list of the key-value pairs in t
. Elements are ordered from smallest
(left) to largest (right).
Not thread-safe.