def ensure

gralha-byte-words@0.1.0.0 · words.bend:60

import gralha-byte-words@0.1.0.0/words.bend as Words
import 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))

Uses (9)

Used by (1)