I wonder about the generated Assembly: In Rust if u add #[repr(usize)] to the enum the generated code as only two lines. In D, Look like the first assembly lines are checking for errors(or out of bounds index?). But why if this is a final switch? (also assert(0); at the end don´t help )