def ensure
import gralha-byte-words@0.1.0.0/words.bend as Wordsimport Base
60# (out, cap) with cap >= need; ok says it already is
61def ensure(n: Nat, out: Array<U32>, +cap: U32, +need: U32, ok: Bool) -> Array<U32> & U32:
62 match n, ok:
63 case k, True{}:
64 (out, cap)
65 case 0n, False{}:
66 (out, cap)
67 case 1n+p, False{}:
68 ensure(p, grow(out, cap), (cap * 2 : U32), need, U32.is_ge((cap * 2 : U32), need))