#[derive(Debug, serde::Deserialize)]
struct WebElem {
#[serde(rename = "element-6066-11e4-a52e-4f735466cecf")]
webid: String,
}
#[derive(Default, serde::Serialize, Debug)]
pub struct FindElemFilter {
using: String,
value: String,
}
pub trait FindElemFilterSetter {
fn set_using(&mut self, arg: &str);
fn set_value(&mut self, arg: &str);
}
pub trait FindElemResultGetter {
fn eleid(&self) -> &str;
}
pub trait FindElemsResultGetter {
fn eleids(&self) -> Vec<&str>;
}
#[derive(Debug, serde::Deserialize)]
pub struct FindElemResult {
value: WebElem,
}
#[derive(Debug, serde::Deserialize)]
pub struct FindElemsResult {
value: Vec<WebElem>,
}
impl FindElemFilterSetter for FindElemFilter {
fn set_using(&mut self, arg: &str) {
self.using = arg.to_string();
}
fn set_value(&mut self, arg: &str) {
self.value = arg.to_string();
}
}
impl FindElemResultGetter for FindElemResult {
fn eleid(&self) -> &str {
self.value.webid.as_ref()
}
}
impl FindElemsResultGetter for FindElemsResult {
fn eleids(&self) -> Vec<&str> {
self.value.iter().map(|x| x.webid.as_ref()).collect()
}
}