Fifth exercise

Try to fix the previous example with lifetimes instead.

Answer
use std::fmt::Display;

#[derive(Debug, Clone, Copy)]
struct Person<'a> {
    name: &'a str,
    age: i32
}

impl Display for Person<'_> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{} is {} years old.", self.name, self.age)
    }
}

fn main() {
    let p1 = Person { name: "Klaas", age: 123 };

    let p2 = p1;

    println!("{}", p1);
    println!("{:?}", p2);
}