def in.size.of

bend-osdev-acpi@0.1.1.0 · aml_interp.bend:1250

import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_value.bend as V

1250def in.size.of(v: V.AmlValue) -> Result<&2, &2, E.AcpiError, Nat>:
1251  match v:
1252    case V.AmlStr{s}:
1253      Done{B.Octets.len(s)}
1254    case V.AmlBuf{b}:
1255      Done{B.Octets.len(b)}
1256    case V.AmlPkg{xs}:
1257      Done{List.length(&2, V.AmlValue, xs)}
1258    case _:
1259      Fail{E.AcpiAmlBadType{"SizeOf or Index of a value that is not a string, buffer or package"}}

Uses (6)

Used by (2)