def tree_set_word

mylsm-lsm-store@0.6.0.1 · src/BitTree.bend:125

import mylsm-lsm-store@0.6.0.1/src/BitTree.bend as BitTree
import Base

125# Handle tree set word in the packed bit-tree operations.
126def tree_set_word(path: List<&2, Bool>, value: U32, tree: WordTree) -> WordTree:
127  match path tree:
128    case Nil{} Empty{}:
129      Empty{}
130    case Nil{} Leaf{word}:
131      Leaf{value}
132    case Nil{} Fork{left, right}:
133      Fork{left, right}
134    case Con{side, rest} Empty{}:
135      Empty{}
136    case Con{side, rest} Leaf{word}:
137      Leaf{word}
138    case Con{False{}, rest} Fork{left, right}:
139      Fork{tree_set_word(rest, value, left), right}
140    case Con{True{}, rest} Fork{left, right}:
141      Fork{left, tree_set_word(rest, value, right)}

Uses (4)

Used by (1)