OMG, here comes a bunch of bloat into the kernel. I like rust (well, the idea and principle) but when you are doing low level stuff, something as trivial as a structure to bind an address then manipulate those bits by writing to them (enabling and disabling features) it becomes a no go. If you even consider how exhaustive it is to manage OBMR at this level of code, it becomes counter productive, not to mention unreadable. Now for the bloat part, take a simple code (one of their examples) which is a showcase of their capabilities and “zero cost” abstraction for something like embedded, their blinky app is like 100KB versus a initialize the clock/ set GPIO to read mode, and write to it that come out shy of 4K in C++ with all the hall form STM for example. Object lifetime analysis is really cool at compile time, but any un defines behavior is still present when you compile the code… Show me someone doing a baremetal implementation of blinky (that is, no HAL) on rust or a struct for bit banging and I’ll be a believer that you can do “some” of the stuff needed for kernel development but not all.