def reg.dispatch
bend-osdev-acpi@0.1.1.0 · registry.bend:140
import bend-osdev-acpi@0.1.1.0/registry.bend as Registry
import Base
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/header.bend as H
import bend-osdev-acpi@0.1.1.0/rsdt.bend as S
import bend-osdev-acpi@0.1.1.0/madt.bend as M
import bend-osdev-acpi@0.1.1.0/fadt.bend as F
import bend-osdev-acpi@0.1.1.0/hpet.bend as P
import bend-osdev-acpi@0.1.1.0/mcfg.bend as C
import bend-osdev-acpi@0.1.1.0/srat.bend as R
import bend-osdev-acpi@0.1.1.0/slit.bend as L
import bend-osdev-acpi@0.1.1.0/bgrt.bend as G
import bend-osdev-acpi@0.1.1.0/dsdt.bend as D
140def reg.dispatch(~X: Data, ~ext: U32 -> H.AcpiSdt -> Result<&2, &2, E.AcpiError, X>, k: AcpiKind, +t: H.AcpiSdt) -> Result<&2, &2, E.AcpiError, AcpiTable<X>>:
141 match k:
142 case AcpiKRsdt{}:
143 reg.wrap(~X, ~S.AcpiSdtList, ~(a => AcpiTRsdt{a}), S.AcpiRsdt.of_sdt(t))
144 case AcpiKXsdt{}:
145 reg.wrap(~X, ~S.AcpiSdtList, ~(a => AcpiTXsdt{a}), S.AcpiXsdt.of_sdt(t))
146 case AcpiKMadt{}:
147 reg.wrap(~X, ~M.AcpiMadt, ~(a => AcpiTMadt{a}), M.AcpiMadt.of_sdt(t))
148 case AcpiKFadt{}:
149 reg.wrap(~X, ~F.AcpiFadt, ~(a => AcpiTFadt{a}), F.AcpiFadt.of_sdt(t))
150 case AcpiKHpet{}:
151 reg.wrap(~X, ~P.AcpiHpet, ~(a => AcpiTHpet{a}), P.AcpiHpet.of_sdt(t))
152 case AcpiKMcfg{}:
153 reg.wrap(~X, ~C.AcpiMcfg, ~(a => AcpiTMcfg{a}), C.AcpiMcfg.of_sdt(t))
154 case AcpiKSrat{}:
155 reg.wrap(~X, ~R.AcpiSrat, ~(a => AcpiTSrat{a}), R.AcpiSrat.of_sdt(t))
156 case AcpiKSlit{}:
157 reg.wrap(~X, ~L.AcpiSlit, ~(a => AcpiTSlit{a}), L.AcpiSlit.of_sdt(t))
158 case AcpiKBgrt{}:
159 reg.wrap(~X, ~G.AcpiBgrt, ~(a => AcpiTBgrt{a}), G.AcpiBgrt.of_sdt(t))
160 case AcpiKAml{}:
161 reg.wrap(~X, ~D.AcpiAml, ~(a => AcpiTAml{a}), D.AcpiAml.of_sdt(t))
162 case AcpiKRaw{}:
163 Done{AcpiTRaw{t}}
164 case AcpiKExt{+tag}:
165 reg.ext(~X, tag, ext(tag, t))