[−][src]Module vm_memory::endian
Explicit endian types useful for embedding in structs or reinterpreting data.
Each endian type is guaarnteed to have the same size and alignment as a regular unsigned primitive of the equal size.
Examples
let b: Be32 = From::from(3); let l: Le32 = From::from(3); assert_eq!(b.to_native(), 3); assert_eq!(l.to_native(), 3); assert!(b == 3); assert!(l == 3); let b_trans: u32 = unsafe { std::mem::transmute(b) }; let l_trans: u32 = unsafe { std::mem::transmute(l) }; #[cfg(target_endian = "little")] assert_eq!(l_trans, 3); #[cfg(target_endian = "big")] assert_eq!(b_trans, 3); assert_ne!(b_trans, l_trans);
Structs
| Be16 | An unsigned integer type of with an explicit endianness. |
| Be32 | An unsigned integer type of with an explicit endianness. |
| Be64 | An unsigned integer type of with an explicit endianness. |
| BeSize | An unsigned integer type of with an explicit endianness. |
| Le16 | An unsigned integer type of with an explicit endianness. |
| Le32 | An unsigned integer type of with an explicit endianness. |
| Le64 | An unsigned integer type of with an explicit endianness. |
| LeSize | An unsigned integer type of with an explicit endianness. |