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