use std::ops::Deref; trait WithName { fn get_name(&self) -> &str; } struct Human { name: String, } impl Human { fn new(name: String) -> Self { Self { name } } } impl WithName for Human { fn get_name(&self) -> &str { self.name.deref() } } fn main() { let with_name = Human::new("Hatter".into()); println!("With name: {}", with_name.get_name()); }