1
2
3
4
5
6
7
8
9
10
pub trait Selectable {
    fn is_selected(&self) -> bool;
    fn set_selected(&mut self, selected: bool);
    fn select(&mut self) {
        self.set_selected(true)
    }
    fn unselect(&mut self) {
        self.set_selected(false)
    }
}