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
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)}