diff --git a/rustbyexample/hello/testcase_list.rs b/rustbyexample/hello/testcase_list.rs new file mode 100644 index 0000000..2f29761 --- /dev/null +++ b/rustbyexample/hello/testcase_list.rs @@ -0,0 +1,23 @@ +use std::fmt; + +struct List(Vec); + +impl fmt::Display for List { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let vec = &self.0; + + write!(f, "[")?; + + for (count, v ) in vec.iter().enumerate() { + if count != 0 { write!(f, ", ")?; } + write!(f, "{}", v)?; + } + + write!(f, "]") + } +} + +fn main() { + let v = List(vec![1, 2, 3]); + println!("{}", v); +}