def union_bits
mylsm-lsm-store@0.6.0.1 · src/BitTree.bend:199
import mylsm-lsm-store@0.6.0.1/src/BitTree.bend as BitTree
import Base
199
200
201
202def union_bits(ta: WordTree, tb: WordTree) -> WordTree:
203 match ta tb:
204 case Empty{} Empty{}:
205 Empty{}
206 case Empty{} Leaf{wb}:
207 Leaf{wb}
208 case Empty{} Fork{lb, rb}:
209 Fork{lb, rb}
210 case Leaf{wa} Empty{}:
211 Leaf{wa}
212 case Leaf{wa} Leaf{wb}:
213 Leaf{U32.or(wa, wb)}
214 case Leaf{wa} Fork{lb, rb}:
215 Fork{lb, rb}
216 case Fork{la, ra} Empty{}:
217 Fork{la, ra}
218 case Fork{la, ra} Leaf{wb}:
219 Fork{la, ra}
220 case Fork{la, ra} Fork{lb, rb}:
221 Fork{union_bits(la, lb), union_bits(ra, rb)}