#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::fmt; struct Foo(i32); impl fmt::Display for Foo { fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { assert!(formatter.sign_aware_zero_pad()); assert_eq!(formatter.width(), Some(4)); write!(formatter, "{}", self.0) } } fn main() { assert_eq!(format!("{:04}", Foo(23)), "23"); }