Unless both types are #[repr(C)], Rust DOES NOT guarantee the two different types with same type of fields in same order on definition to have same memory layout.
This should compile down to the most efficient version anyway, so if Rust happens to not decide to reorder the fields, it should be equivalent to the transmute.