Oh, and the bad news: to understand ACPICA you probably want to read the ACPI spec as well.
It's absolutely necessary to read the actual ACPI spec, but I think it's reasonable to wonder why you need another 300 pages to understand the implementation. While it has the benefit of being the reference implementation, ACPICA is a real mess and I'd argue is very difficult to use correctly outside of Linux.
There's an acpi crate for Rust (just called "acpi") but it doesn't parse all devices. So you'll have to do some of that yourself. And either way you should probably learn how all that works anyhow.
The crate is, I'd say, a much better experience than ACPICA, and should be complete enough to get you started on QEMU or something.
Relatedly, if anyone does come across anything that is not supported, please do file an issue, or feel free to contribute (something as large and annoying to implement as ACPI could really do with a single implementation; the C side has managed this pretty well with `lai` so it'd be good to say the same for Rust).