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);