I’ve been looking at Rust recently and I wrote a small Rust program that uses traits, a concept very similar to interfaces in other languages. There’s a lot to learn but this seems reasonable.
struct Message { id: i32, text: String,} trait Printer { fn print(&self, value: &str);} struct ConsolePrinter {} impl Printer for ConsolePrinter { fn print(&self, value: &str) { println!("{}", value); }} fn main() { let messages = vec![ Message { id: 1, text: String::from("Hello world"), }, Message { id: 2, text: String::from("How are you?"), }, Message { id: 3, text: String::from("Goodbye"), }, ]; let printer = ConsolePrinter {}; for message in &messages { printer.print(&message.text) }}
Read the rest of my notes