The sizes of the structs in C and Rust are not the same. Even after turning on C representation, and packed, I was still left with a struct that was at least 195 bytes. In comparison, the same struct in C was only 52 bytes...
So what is needed here is some deserialization wherein one extracts the values seperately and reconstructs the struct in Rust. So, I implemented exactly that.