// run-pass struct Dog { name : String } trait Barks { fn bark(&self) -> String; } impl Barks for Dog { fn bark(&self) -> String { return format!("woof! (I'm {})", self.name); } } pub fn main() { let snoopy = Box::new(Dog{name: "snoopy".to_string()}); let bubbles = Box::new(Dog{name: "bubbles".to_string()}); let barker = [snoopy as Box, bubbles as Box]; for pup in &barker { println!("{}", pup.bark()); } }