rustbook/ch10/trait_blanket_implementation.rs
Jasper Ras 2f6caa57f0 commit
2026-02-21 11:50:20 +01:00

29 lines
419 B
Rust

trait Named {
fn say_name(&self) -> String;
}
trait Bold {
fn write_bold(&self);
}
impl<T: Named> Bold for T {
fn write_bold(&self) {
println!("!bold {}", self.say_name())
}
}
struct Person {
name: String,
}
impl Named for Person {
fn say_name(&self) -> String {
self.name.clone()
}
}
fn main() {
let p = Person{name: String::from("Jasper")};
p.write_bold();
}