impl Selectable for ButtonLike { fn selected ( mut self , selected : bool ) -> Self { self .selected = selected ; self } } Since our Button component is built on top of ButtonLike , in order to implement Selectable for Button we can simply delegate the trait to ButtonLike 's implementation: #[derive( IntoElement )] pub struct Button { base : ButtonLike , // ... } impl Selectable for Button { fn selected ( mut self , selected : bool ) -> Self { self .base = self .base.