elmio_core/browser/
selector.rs1use 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}