Porting C code to Rust is something that probably will happen again and again. This interesting presentation is about porting librsvg from C to Rust:
Having good and updated docs helps doing similar C=>Rust conversions:
Also IDEs, and some more stdlib care about Rust FFI could help. But “Draining a massive struct field by field” as shown in that presentation is lot of work. How can we reduce the amount of work here (and make it less bug-prone)? Could Rust annotations, or new small Rust features help turn this gruesome work into something more reasonable? Lot of this work seems mechanical to me, so there should be ways to automate part of it.