结构 / 构造函数

struct Man<'a> {
    name: &'a str
}

impl<'a> Man<'_> {
    fn new(name: &'a str) -> Man<'a> {
        Man { name: name }
    }
}

struct Employee<'a> {
    parent: Man<'a>,
    position: &'a str
}

impl<'a> Employee<'a> {
    fn new(name: &'a str
        position: &'a str) -> Employee<'a> {
        Employee {
            parent: Man::new(name),
            position: position
        }
    }

    fn name(&self) -> &'a str {
        self.parent.name
    }
}

let employee = Employee::new("Max""booker");
//employee.name() is "Max"
println!("name is '{}'", employee.name());
println!("position is '{}'", employee.position);