Memory overhead of `Option` in Rust is not constant
Using the following snippet use std::mem; fn main() { println!("size Option(bool): {} ({})", mem::size_of::<Option<bool>>(), mem::size_of::<bool>()); println!("size Option(u8): {} ({})", mem::size_of::<Option<u8>>(), mem::size_of::<u8>()); println!("size Option(u16): {} ({})", mem::size_of::<Option<u16>>(), mem::size_of::<u16>()); println!("size Option(u32): {} ({})", mem::size_of::<Option<u32>>(), mem::size_of::<u32>()); println!("size Option(u64): {} ({})", mem::size_of::<Option<u64>>(), mem::size_of::<u64>()); println!("size Option(u128): {} ({})", mem::size_of::<Option<u128>>(), mem::size_of::<u128>()) } I see on my 64-bits machine: size Option(bool): 1… Read More Memory overhead of `Option` in Rust is not constant