hover.rs

 1use crate::{SharedString, StyleRefinement};
 2
 3pub trait Hover {
 4    fn set_hover_style(&mut self, group_name: Option<SharedString>, style: StyleRefinement);
 5
 6    fn hover(mut self, f: impl FnOnce(StyleRefinement) -> StyleRefinement) -> Self
 7    where
 8        Self: Sized,
 9    {
10        self.set_hover_style(None, f(StyleRefinement::default()));
11        self
12    }
13
14    fn group_hover(
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_hover_style(Some(group_name.into()), f(StyleRefinement::default()));
23        self
24    }
25}