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
    }
}