AmlResource.AmlResource.encode: def of bend-osdev-acpi@0.1.1.0 Import: import bend-osdev-acpi@0.1.1.0/aml_resource.bend as AmlResource Lines 294-313 of bend-osdev-acpi@0.1.1.0/aml_resource.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&start_line=294&end_line=313 import Base import bend-osdev-bytes@0.1.1.0/bytes.bend as B def AmlResource.encode(r: AmlResource) -> B.Octets: match r: case AmlRIrq{m, f}: B.Octets.append(res.b([35]), B.Octets.append(B.Octets.le16(m), res.b([f]))) case AmlRDma{m, f}: res.b([42, m, f]) case AmlRIo{dc, mn, mx, al, l}: B.Octets.concat([res.b([71, dc]), B.Octets.le16(mn), B.Octets.le16(mx), res.b([al, l])]) case AmlRFixedIo{b, l}: B.Octets.concat([res.b([75]), B.Octets.le16(b), res.b([l])]) case AmlRMem32{wr, mn, mx, al, l}: res.lenc(133, B.Octets.concat([res.b([wr]), B.Octets.le32(mn), B.Octets.le32(mx), B.Octets.le32(al), B.Octets.le32(l)])) case AmlRMem32Fixed{wr, b, l}: res.lenc(134, B.Octets.concat([res.b([wr]), B.Octets.le32(b), B.Octets.le32(l)])) case AmlRAddr{+bits, k, f, tf, AmlRange{g, mn, mx, t, l}}: res.lenc(res.addr.tag(bits), B.Octets.concat([res.b([k, f, tf]), res.w(bits, g), res.w(bits, mn), res.w(bits, mx), res.w(bits, t), res.w(bits, l)])) case AmlRExtIrq{f, +irqs}: res.lenc(137, B.Octets.concat([res.b([f, U32.from_nat(List.length(&2, U32, irqs))]), res.irqs.enc(irqs)])) case AmlROther{+t, +d}: res.other(U32.is_lt(t, 128), t, d) Uses (18): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.length https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.from_nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_lt https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=AmlRange https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=AmlResource https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.addr.tag https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.b https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.irqs.enc https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.lenc https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.other https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/aml_resource.bend&name=res.w https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.append https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.concat https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.le16 https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.le32