presto/btrees

Source   Edit  

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 `$`[Key, Val](b: BTree[Key, Val]): string {....raises: [].}
Source   Edit  
proc add[Key, Val](b: var BTree[Key, Val]; key: Key; val: Val) {....raises: [].}
Source   Edit  
proc contains[Key, Val](b: BTree[Key, Val]; key: Key): bool {....raises: [].}
Source   Edit  
proc getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key): Val {....raises: [].}
Source   Edit  
proc getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key; default: Val): Val {.
    ...raises: [].}
Source   Edit  
proc hasNext[Key, Val](b: BTree[Key, Val]; index: int): bool {....raises: [].}
Source   Edit  
proc initBTree[Key, Val](): BTree[Key, Val] {....raises: [].}
Source   Edit  
proc len[Key, Val](b: BTree[Key, Val]): int {.inline, ...raises: [].}
Source   Edit  
proc next[Key, Val](b: BTree[Key, Val]; index: int): (Key, Val, int) {.
    ...raises: [].}
Source   Edit  

Iterators

iterator pairs[Key, Val](b: BTree[Key, Val]): (Key, Val) {....raises: [].}
Source   Edit