def cur.imm.k
bend-osdev-acpi@0.1.1.0 · aml_interp.bend:359
import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E
359def cur.imm.k(ok: Bool, +n: Nat, c: AmlCur) -> Result<&2, &2, E.AcpiError, AmlImm>:
360 match ok:
361 case False{}:
362 Fail{E.AcpiAmlTruncated{}}
363 case True{}:
364 match c:
365 case AmlCur{+code, lim}:
366 Done{AmlImm{cur.fold(B.take.fast(n, code), 0n, W.W64.zero()), AmlCur{B.drop(n, code), Nat.sub(lim, n)}}}