blob: 2894eb63328912c587d5d0f82047c4e28d64c713 [file] [log] [blame]
// Generic Programming: Dynamic Polymorphism
#![allow(dead_code)]
#![allow(unused_imports)]
use rust_tutorial::*;
fn stringify_all(xs: Vec<&dyn ToString>) -> String {
let strings: Vec<String> =
xs.iter().map(|x| x.to_string()).collect();
strings.join(", ")
}
fn main() {
let mut stringlike_things: Vec<&dyn ToString> = Vec::new();
let x1 = "abc";
let x2 = 100;
let x3 = Person { age: 30, name: "Mary".to_string() };
stringlike_things.push(&x1);
stringlike_things.push(&x2);
stringlike_things.push(&x3);
println!("{}", stringify_all(stringlike_things));
}