def cur.pkg.go
bend-osdev-acpi@0.1.1.0 · aml_interp.bend:306
import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_pkglength.bend as K
306def cur.pkg.go(r: Result<&2, &2, E.AcpiError, K.AmlPkgL>, +lim: Nat) -> Result<&2, &2, E.AcpiError, AmlPkgC>:
307 match r:
308 case Fail{e}:
309 Fail{e}
310 case Done{K.AmlPkgL{v, +size, rest}}:
311 +total = U32.to_nat(v)
312 cur.pkg.k(Bool.and(Nat.is_le(size, total), Nat.is_le(total, lim)), Nat.sub(total, size), rest, Nat.sub(lim, total))