Trait-Constrained Enums in Rust

Well-typed printfs cannot go wrong