def OMap.balance

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

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

121# A node whose sides were balanced before one insertion or deletion.
122def OMap.balance(
123  -K: Data, -V: Data, k: K, v: V, +lo: OMap<K, V>, +hi: OMap<K, V>
124) -> OMap<K, V>:
125  +wl = (OMap.size(K, V, lo) + 1 : U32)
126  +wh = (OMap.size(K, V, hi) + 1 : U32)
127  OMap.balance.if(K, V, U32.is_gt(wh, (3 * wl : U32)),
128    U32.is_gt(wl, (3 * wh : U32)), k, v, lo, hi)

Uses (7)

Used by (11)