Just to note that the GStreamer folk seem not to do gir runs for the Rust bindings on each build, they treat running gir to generate code from GIR files as a separate activity with the results stored in the Git repository. This might be because they separate the C side and Rust side bindings of course. However, it is more likely to be because of all the manual tinkering that goes on: the GIR → Rust translation is not totally automatable.