1 2 3 4 5 6 7 8 9 10 11
pub trait AbstractDevice { fn driver(&self) -> String; } pub trait AbstractRenderer { type Dev: AbstractDevice; fn get_device(&self) -> &Self::Dev; fn draw(&self) { println!("{} is drawing.", &self.get_device().driver()); } }