def OMap.rot_lo

bend-kit-collections@0.1.4.1 · omap.bend:62

import bend-kit-collections@0.1.4.1/omap.bend as Omap
import Base

62# The hi side is too heavy: move weight toward lo.
63def OMap.rot_lo(
64  -K: Data, -V: Data, k: K, v: V, lo: OMap<K, V>, hi: OMap<K, V>
65) -> OMap<K, V>:
66  match hi:
67    case OTip{}:
68      OMap.bin(K, V, k, v, lo, OTip{})
69    case OBin{s, hk, hv, +hl, +hh}:
70      OMap.rot_lo.pick(K, V,
71        U32.is_lt((OMap.size(K, V, hl) + 1 : U32),
72          (2 * (OMap.size(K, V, hh) + 1) : U32)),
73        k, v, lo, hk, hv, hl, hh)

Uses (8)

Used by (3)