#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::fmt; struct Foo(Vec); impl fmt::Debug for Foo { fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { let mut f = fmt.debug_list(); let mut f = f.entries(self.0.iter().take(2)); if self.0.len() > 2 { f.finish_non_exhaustive() } else { f.finish() } } } fn main() { assert_eq!(format!("{:?}", Foo(vec![1, 2, 3, 4])), "[1, 2, ..]",); }