elmio_core/browser/
selector.rs

1use std::fmt;
2
3#[derive(Clone, serde::Serialize, serde::Deserialize)]
4pub struct Selector(String);
5
6impl Selector {
7    pub fn id(id: &str) -> Selector {
8        Selector(format!("#{}", id))
9    }
10
11    pub fn radio_group(name: &str) -> Selector {
12        Selector(format!("input[type=radio][name={}]", name))
13    }
14
15    pub fn data(name: &str) -> Selector {
16        Selector(format!("[data-{}]", name))
17    }
18
19    pub fn data_value(key: &str, value: &str) -> Selector {
20        Selector(format!("[data-{}=\"{}\"]", key, value))
21    }
22}
23
24impl fmt::Display for Selector {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        write!(f, "{}", self.0)
27    }
28}