1use crate::{SharedString, StyleRefinement};
2
3pub trait Active {
4 fn set_active_style(&mut self, group_name: Option<SharedString>, style: StyleRefinement);
5
6 fn active(mut self, f: impl FnOnce(StyleRefinement) -> StyleRefinement) -> Self
7 where
8 Self: Sized,
9 {
10 self.set_active_style(None, f(StyleRefinement::default()));
11 self
12 }
13
14 fn group_active(
15 mut self,
16 group_name: impl Into<SharedString>,
17 f: impl FnOnce(StyleRefinement) -> StyleRefinement,
18 ) -> Self
19 where
20 Self: Sized,
21 {
22 self.set_active_style(Some(group_name.into()), f(StyleRefinement::default()));
23 self
24 }
25}