Actually, one of the first tools to appear in the Rust ecosystem was a port of the "bindgen" program written for the Clay language, which has been solving the problem of parsing C headers for years now:
Ah, thank you, I knew I saw something like that when I looked into rust a while back, but there was no mention of it in the Rust FFI guide[1]. It should definitely be included in the compiler at some point, it's a vital feature IMO.
https://github.com/crabtw/rust-bindgen/
There are also long-term plans for adopting this into the compiler itself:
https://github.com/mozilla/rust/issues/2124