btrees

BTree implementation with few features, but good enough for the Nim compiler's needs.

Types

BTree[Key; Val] = object
  root: Node[Key, Val]
  entries: int               ## number of key-value pairs
  
  Source Edit

Procs

proc initBTree[Key, Val](): BTree[Key, Val]
  Source Edit
proc getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key): Val
  Source Edit
proc contains[Key, Val](b: BTree[Key, Val]; key: Key): bool
  Source Edit
proc add[Key, Val](b: var BTree[Key, Val]; key: Key; val: Val)
  Source Edit
proc hasNext[Key, Val](b: BTree[Key, Val]; index: int): bool
  Source Edit
proc next[Key, Val](b: BTree[Key, Val]; index: int): (Key, Val, int)
  Source Edit
proc len[Key, Val](b: BTree[Key, Val]): int {...}{.inline.}
  Source Edit

Iterators

iterator pairs[Key, Val](b: BTree[Key, Val]): (Key, Val)
  Source Edit