If you interface with C, then Rust doesn't have anything to prevent this class of errors. If you interface Rust with Rust, then Rust weasels out of solving this problem by declaring it doesn't have a stable ABI :)
In practice you compile everything with Cargo and it ensures all affected crates are recompiled when interfaces or settings change, so everything matches.
In practice you compile everything with Cargo and it ensures all affected crates are recompiled when interfaces or settings change, so everything matches.