May 2018
Intermediate to advanced
462 pages
11h 5m
English
Rust has a handful of mechanisms to lay out compound types in memory. They are as follows:
Exactly how these are laid out in memory depends on the representation chosen. By default, everything in Rust is repr(Rust). All repr(Rust) types are aligned on byte boundaries to the power of two. Every type is at least one byte in memory, then two, then four, and so forth. Primitives—u8, usize, bool, and &T—are aligned to their size. In Rust, representation structures have alignment according to the largest field. Consider the following struct:
struct AGC {
elapsed_time2: u16,
elapsed_time1: u16,
wait_list_upper: u32,
wait_list_lower: u16,
digital_autopilot: u16,
fine_scale: u16
}
AGC is aligned to u32
Read now
Unlock full access