1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use cell::{CloneCell}; use theme::Selector; pub trait Style { fn selector(&self) -> &CloneCell<Selector>; fn with_class<S: Into<String>>(&self, class: S) -> &Self { self.selector().set(self.selector().get().with_class(class)); self } fn without_class<S: Into<String>>(&self, class: S) -> &Self { self.selector().set(self.selector().get().without_class(class)); self } fn with_pseudo_class<S: Into<String>>(&self, pseudo_class: S) -> &Self { self.selector().set(self.selector().get().with_pseudo_class(pseudo_class)); self } fn without_pseudo_class<S: Into<String>>(&self, pseudo_class: S) -> &Self { self.selector().set(self.selector().get().without_pseudo_class(pseudo_class)); self } }