use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
pub type AXNodeId<'a> = Cow<'a, str>;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AXValueType {
#[default]
#[serde(rename = "boolean")]
Boolean,
#[serde(rename = "tristate")]
Tristate,
#[serde(rename = "booleanOrUndefined")]
BooleanOrUndefined,
#[serde(rename = "idref")]
Idref,
#[serde(rename = "idrefList")]
IdrefList,
#[serde(rename = "integer")]
Integer,
#[serde(rename = "node")]
Node,
#[serde(rename = "nodeList")]
NodeList,
#[serde(rename = "number")]
Number,
#[serde(rename = "string")]
String,
#[serde(rename = "computedString")]
ComputedString,
#[serde(rename = "token")]
Token,
#[serde(rename = "tokenList")]
TokenList,
#[serde(rename = "domRelation")]
DomRelation,
#[serde(rename = "role")]
Role,
#[serde(rename = "internalRole")]
InternalRole,
#[serde(rename = "valueUndefined")]
ValueUndefined,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AXValueSourceType {
#[default]
#[serde(rename = "attribute")]
Attribute,
#[serde(rename = "implicit")]
Implicit,
#[serde(rename = "style")]
Style,
#[serde(rename = "contents")]
Contents,
#[serde(rename = "placeholder")]
Placeholder,
#[serde(rename = "relatedElement")]
RelatedElement,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AXValueNativeSourceType {
#[default]
#[serde(rename = "description")]
Description,
#[serde(rename = "figcaption")]
Figcaption,
#[serde(rename = "label")]
Label,
#[serde(rename = "labelfor")]
Labelfor,
#[serde(rename = "labelwrapped")]
Labelwrapped,
#[serde(rename = "legend")]
Legend,
#[serde(rename = "rubyannotation")]
Rubyannotation,
#[serde(rename = "tablecaption")]
Tablecaption,
#[serde(rename = "title")]
Title,
#[serde(rename = "other")]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AXValueSource<'a> {
#[serde(rename = "type")]
type_: AXValueSourceType,
#[serde(skip_serializing_if = "Option::is_none")]
value: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
attribute: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
attributeValue: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
superseded: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
nativeSource: Option<AXValueNativeSourceType>,
#[serde(skip_serializing_if = "Option::is_none")]
nativeSourceValue: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
invalid: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
invalidReason: Option<Cow<'a, str>>,
}
impl<'a> AXValueSource<'a> {
pub fn builder(type_: AXValueSourceType) -> AXValueSourceBuilder<'a> {
AXValueSourceBuilder {
type_: type_,
value: None,
attribute: None,
attributeValue: None,
superseded: None,
nativeSource: None,
nativeSourceValue: None,
invalid: None,
invalidReason: None,
}
}
pub fn type_(&self) -> &AXValueSourceType { &self.type_ }
pub fn value(&self) -> Option<&AXValue<'a>> { self.value.as_ref() }
pub fn attribute(&self) -> Option<&str> { self.attribute.as_deref() }
pub fn attributeValue(&self) -> Option<&AXValue<'a>> { self.attributeValue.as_ref() }
pub fn superseded(&self) -> Option<bool> { self.superseded }
pub fn nativeSource(&self) -> Option<&AXValueNativeSourceType> { self.nativeSource.as_ref() }
pub fn nativeSourceValue(&self) -> Option<&AXValue<'a>> { self.nativeSourceValue.as_ref() }
pub fn invalid(&self) -> Option<bool> { self.invalid }
pub fn invalidReason(&self) -> Option<&str> { self.invalidReason.as_deref() }
}
pub struct AXValueSourceBuilder<'a> {
type_: AXValueSourceType,
value: Option<AXValue<'a>>,
attribute: Option<Cow<'a, str>>,
attributeValue: Option<AXValue<'a>>,
superseded: Option<bool>,
nativeSource: Option<AXValueNativeSourceType>,
nativeSourceValue: Option<AXValue<'a>>,
invalid: Option<bool>,
invalidReason: Option<Cow<'a, str>>,
}
impl<'a> AXValueSourceBuilder<'a> {
pub fn value(mut self, value: AXValue<'a>) -> Self { self.value = Some(value); self }
pub fn attribute(mut self, attribute: impl Into<Cow<'a, str>>) -> Self { self.attribute = Some(attribute.into()); self }
pub fn attributeValue(mut self, attributeValue: AXValue<'a>) -> Self { self.attributeValue = Some(attributeValue); self }
pub fn superseded(mut self, superseded: bool) -> Self { self.superseded = Some(superseded); self }
pub fn nativeSource(mut self, nativeSource: AXValueNativeSourceType) -> Self { self.nativeSource = Some(nativeSource); self }
pub fn nativeSourceValue(mut self, nativeSourceValue: AXValue<'a>) -> Self { self.nativeSourceValue = Some(nativeSourceValue); self }
pub fn invalid(mut self, invalid: bool) -> Self { self.invalid = Some(invalid); self }
pub fn invalidReason(mut self, invalidReason: impl Into<Cow<'a, str>>) -> Self { self.invalidReason = Some(invalidReason.into()); self }
pub fn build(self) -> AXValueSource<'a> {
AXValueSource {
type_: self.type_,
value: self.value,
attribute: self.attribute,
attributeValue: self.attributeValue,
superseded: self.superseded,
nativeSource: self.nativeSource,
nativeSourceValue: self.nativeSourceValue,
invalid: self.invalid,
invalidReason: self.invalidReason,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AXRelatedNode<'a> {
backendDOMNodeId: crate::dom::BackendNodeId,
#[serde(skip_serializing_if = "Option::is_none")]
idref: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
text: Option<Cow<'a, str>>,
}
impl<'a> AXRelatedNode<'a> {
pub fn builder(backendDOMNodeId: crate::dom::BackendNodeId) -> AXRelatedNodeBuilder<'a> {
AXRelatedNodeBuilder {
backendDOMNodeId: backendDOMNodeId,
idref: None,
text: None,
}
}
pub fn backendDOMNodeId(&self) -> &crate::dom::BackendNodeId { &self.backendDOMNodeId }
pub fn idref(&self) -> Option<&str> { self.idref.as_deref() }
pub fn text(&self) -> Option<&str> { self.text.as_deref() }
}
pub struct AXRelatedNodeBuilder<'a> {
backendDOMNodeId: crate::dom::BackendNodeId,
idref: Option<Cow<'a, str>>,
text: Option<Cow<'a, str>>,
}
impl<'a> AXRelatedNodeBuilder<'a> {
pub fn idref(mut self, idref: impl Into<Cow<'a, str>>) -> Self { self.idref = Some(idref.into()); self }
pub fn text(mut self, text: impl Into<Cow<'a, str>>) -> Self { self.text = Some(text.into()); self }
pub fn build(self) -> AXRelatedNode<'a> {
AXRelatedNode {
backendDOMNodeId: self.backendDOMNodeId,
idref: self.idref,
text: self.text,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AXProperty<'a> {
name: AXPropertyName,
value: AXValue<'a>,
}
impl<'a> AXProperty<'a> {
pub fn builder(name: AXPropertyName, value: AXValue<'a>) -> AXPropertyBuilder<'a> {
AXPropertyBuilder {
name: name,
value: value,
}
}
pub fn name(&self) -> &AXPropertyName { &self.name }
pub fn value(&self) -> &AXValue<'a> { &self.value }
}
pub struct AXPropertyBuilder<'a> {
name: AXPropertyName,
value: AXValue<'a>,
}
impl<'a> AXPropertyBuilder<'a> {
pub fn build(self) -> AXProperty<'a> {
AXProperty {
name: self.name,
value: self.value,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AXValue<'a> {
#[serde(rename = "type")]
type_: AXValueType,
#[serde(skip_serializing_if = "Option::is_none")]
value: Option<JsonValue>,
#[serde(skip_serializing_if = "Option::is_none")]
relatedNodes: Option<Vec<AXRelatedNode<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
sources: Option<Vec<AXValueSource<'a>>>,
}
impl<'a> AXValue<'a> {
pub fn builder(type_: AXValueType) -> AXValueBuilder<'a> {
AXValueBuilder {
type_: type_,
value: None,
relatedNodes: None,
sources: None,
}
}
pub fn type_(&self) -> &AXValueType { &self.type_ }
pub fn value(&self) -> Option<&JsonValue> { self.value.as_ref() }
pub fn relatedNodes(&self) -> Option<&[AXRelatedNode<'a>]> { self.relatedNodes.as_deref() }
pub fn sources(&self) -> Option<&[AXValueSource<'a>]> { self.sources.as_deref() }
}
pub struct AXValueBuilder<'a> {
type_: AXValueType,
value: Option<JsonValue>,
relatedNodes: Option<Vec<AXRelatedNode<'a>>>,
sources: Option<Vec<AXValueSource<'a>>>,
}
impl<'a> AXValueBuilder<'a> {
pub fn value(mut self, value: JsonValue) -> Self { self.value = Some(value); self }
pub fn relatedNodes(mut self, relatedNodes: Vec<AXRelatedNode<'a>>) -> Self { self.relatedNodes = Some(relatedNodes); self }
pub fn sources(mut self, sources: Vec<AXValueSource<'a>>) -> Self { self.sources = Some(sources); self }
pub fn build(self) -> AXValue<'a> {
AXValue {
type_: self.type_,
value: self.value,
relatedNodes: self.relatedNodes,
sources: self.sources,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AXPropertyName {
#[default]
#[serde(rename = "actions")]
Actions,
#[serde(rename = "busy")]
Busy,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "editable")]
Editable,
#[serde(rename = "focusable")]
Focusable,
#[serde(rename = "focused")]
Focused,
#[serde(rename = "hidden")]
Hidden,
#[serde(rename = "hiddenRoot")]
HiddenRoot,
#[serde(rename = "invalid")]
Invalid,
#[serde(rename = "keyshortcuts")]
Keyshortcuts,
#[serde(rename = "settable")]
Settable,
#[serde(rename = "roledescription")]
Roledescription,
#[serde(rename = "live")]
Live,
#[serde(rename = "atomic")]
Atomic,
#[serde(rename = "relevant")]
Relevant,
#[serde(rename = "root")]
Root,
#[serde(rename = "autocomplete")]
Autocomplete,
#[serde(rename = "hasPopup")]
HasPopup,
#[serde(rename = "level")]
Level,
#[serde(rename = "multiselectable")]
Multiselectable,
#[serde(rename = "orientation")]
Orientation,
#[serde(rename = "multiline")]
Multiline,
#[serde(rename = "readonly")]
Readonly,
#[serde(rename = "required")]
Required,
#[serde(rename = "valuemin")]
Valuemin,
#[serde(rename = "valuemax")]
Valuemax,
#[serde(rename = "valuetext")]
Valuetext,
#[serde(rename = "checked")]
Checked,
#[serde(rename = "expanded")]
Expanded,
#[serde(rename = "modal")]
Modal,
#[serde(rename = "pressed")]
Pressed,
#[serde(rename = "selected")]
Selected,
#[serde(rename = "activedescendant")]
Activedescendant,
#[serde(rename = "controls")]
Controls,
#[serde(rename = "describedby")]
Describedby,
#[serde(rename = "details")]
Details,
#[serde(rename = "errormessage")]
Errormessage,
#[serde(rename = "flowto")]
Flowto,
#[serde(rename = "labelledby")]
Labelledby,
#[serde(rename = "owns")]
Owns,
#[serde(rename = "url")]
Url,
#[serde(rename = "activeFullscreenElement")]
ActiveFullscreenElement,
#[serde(rename = "activeModalDialog")]
ActiveModalDialog,
#[serde(rename = "activeAriaModalDialog")]
ActiveAriaModalDialog,
#[serde(rename = "ariaHiddenElement")]
AriaHiddenElement,
#[serde(rename = "ariaHiddenSubtree")]
AriaHiddenSubtree,
#[serde(rename = "emptyAlt")]
EmptyAlt,
#[serde(rename = "emptyText")]
EmptyText,
#[serde(rename = "inertElement")]
InertElement,
#[serde(rename = "inertSubtree")]
InertSubtree,
#[serde(rename = "labelContainer")]
LabelContainer,
#[serde(rename = "labelFor")]
LabelFor,
#[serde(rename = "notRendered")]
NotRendered,
#[serde(rename = "notVisible")]
NotVisible,
#[serde(rename = "presentationalRole")]
PresentationalRole,
#[serde(rename = "probablyPresentational")]
ProbablyPresentational,
#[serde(rename = "inactiveCarouselTabContent")]
InactiveCarouselTabContent,
#[serde(rename = "uninteresting")]
Uninteresting,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AXNode<'a> {
nodeId: AXNodeId<'a>,
ignored: bool,
#[serde(skip_serializing_if = "Option::is_none")]
ignoredReasons: Option<Vec<AXProperty<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
role: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
chromeRole: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
name: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
description: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
value: Option<AXValue<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
properties: Option<Vec<AXProperty<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
parentId: Option<AXNodeId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
childIds: Option<Vec<AXNodeId<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
backendDOMNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> AXNode<'a> {
pub fn builder(nodeId: AXNodeId<'a>, ignored: bool) -> AXNodeBuilder<'a> {
AXNodeBuilder {
nodeId: nodeId,
ignored: ignored,
ignoredReasons: None,
role: None,
chromeRole: None,
name: None,
description: None,
value: None,
properties: None,
parentId: None,
childIds: None,
backendDOMNodeId: None,
frameId: None,
}
}
pub fn nodeId(&self) -> &AXNodeId<'a> { &self.nodeId }
pub fn ignored(&self) -> bool { self.ignored }
pub fn ignoredReasons(&self) -> Option<&[AXProperty<'a>]> { self.ignoredReasons.as_deref() }
pub fn role(&self) -> Option<&AXValue<'a>> { self.role.as_ref() }
pub fn chromeRole(&self) -> Option<&AXValue<'a>> { self.chromeRole.as_ref() }
pub fn name(&self) -> Option<&AXValue<'a>> { self.name.as_ref() }
pub fn description(&self) -> Option<&AXValue<'a>> { self.description.as_ref() }
pub fn value(&self) -> Option<&AXValue<'a>> { self.value.as_ref() }
pub fn properties(&self) -> Option<&[AXProperty<'a>]> { self.properties.as_deref() }
pub fn parentId(&self) -> Option<&AXNodeId<'a>> { self.parentId.as_ref() }
pub fn childIds(&self) -> Option<&[AXNodeId<'a>]> { self.childIds.as_deref() }
pub fn backendDOMNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.backendDOMNodeId.as_ref() }
pub fn frameId(&self) -> Option<&crate::page::FrameId<'a>> { self.frameId.as_ref() }
}
pub struct AXNodeBuilder<'a> {
nodeId: AXNodeId<'a>,
ignored: bool,
ignoredReasons: Option<Vec<AXProperty<'a>>>,
role: Option<AXValue<'a>>,
chromeRole: Option<AXValue<'a>>,
name: Option<AXValue<'a>>,
description: Option<AXValue<'a>>,
value: Option<AXValue<'a>>,
properties: Option<Vec<AXProperty<'a>>>,
parentId: Option<AXNodeId<'a>>,
childIds: Option<Vec<AXNodeId<'a>>>,
backendDOMNodeId: Option<crate::dom::BackendNodeId>,
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> AXNodeBuilder<'a> {
pub fn ignoredReasons(mut self, ignoredReasons: Vec<AXProperty<'a>>) -> Self { self.ignoredReasons = Some(ignoredReasons); self }
pub fn role(mut self, role: AXValue<'a>) -> Self { self.role = Some(role); self }
pub fn chromeRole(mut self, chromeRole: AXValue<'a>) -> Self { self.chromeRole = Some(chromeRole); self }
pub fn name(mut self, name: AXValue<'a>) -> Self { self.name = Some(name); self }
pub fn description(mut self, description: AXValue<'a>) -> Self { self.description = Some(description); self }
pub fn value(mut self, value: AXValue<'a>) -> Self { self.value = Some(value); self }
pub fn properties(mut self, properties: Vec<AXProperty<'a>>) -> Self { self.properties = Some(properties); self }
pub fn parentId(mut self, parentId: AXNodeId<'a>) -> Self { self.parentId = Some(parentId); self }
pub fn childIds(mut self, childIds: Vec<AXNodeId<'a>>) -> Self { self.childIds = Some(childIds); self }
pub fn backendDOMNodeId(mut self, backendDOMNodeId: crate::dom::BackendNodeId) -> Self { self.backendDOMNodeId = Some(backendDOMNodeId); self }
pub fn frameId(mut self, frameId: crate::page::FrameId<'a>) -> Self { self.frameId = Some(frameId); self }
pub fn build(self) -> AXNode<'a> {
AXNode {
nodeId: self.nodeId,
ignored: self.ignored,
ignoredReasons: self.ignoredReasons,
role: self.role,
chromeRole: self.chromeRole,
name: self.name,
description: self.description,
value: self.value,
properties: self.properties,
parentId: self.parentId,
childIds: self.childIds,
backendDOMNodeId: self.backendDOMNodeId,
frameId: self.frameId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DisableParams {}
impl DisableParams { pub const METHOD: &'static str = "Accessibility.disable"; }
impl<'a> crate::CdpCommand<'a> for DisableParams {
const METHOD: &'static str = "Accessibility.disable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EnableParams {}
impl EnableParams { pub const METHOD: &'static str = "Accessibility.enable"; }
impl<'a> crate::CdpCommand<'a> for EnableParams {
const METHOD: &'static str = "Accessibility.enable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetPartialAXTreeParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
nodeId: Option<crate::dom::NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
backendNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
fetchRelatives: Option<bool>,
}
impl<'a> GetPartialAXTreeParams<'a> {
pub fn builder() -> GetPartialAXTreeParamsBuilder<'a> {
GetPartialAXTreeParamsBuilder {
nodeId: None,
backendNodeId: None,
objectId: None,
fetchRelatives: None,
}
}
pub fn nodeId(&self) -> Option<&crate::dom::NodeId> { self.nodeId.as_ref() }
pub fn backendNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.backendNodeId.as_ref() }
pub fn objectId(&self) -> Option<&crate::runtime::RemoteObjectId<'a>> { self.objectId.as_ref() }
pub fn fetchRelatives(&self) -> Option<bool> { self.fetchRelatives }
}
#[derive(Default)]
pub struct GetPartialAXTreeParamsBuilder<'a> {
nodeId: Option<crate::dom::NodeId>,
backendNodeId: Option<crate::dom::BackendNodeId>,
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
fetchRelatives: Option<bool>,
}
impl<'a> GetPartialAXTreeParamsBuilder<'a> {
pub fn nodeId(mut self, nodeId: crate::dom::NodeId) -> Self { self.nodeId = Some(nodeId); self }
pub fn backendNodeId(mut self, backendNodeId: crate::dom::BackendNodeId) -> Self { self.backendNodeId = Some(backendNodeId); self }
pub fn objectId(mut self, objectId: crate::runtime::RemoteObjectId<'a>) -> Self { self.objectId = Some(objectId); self }
pub fn fetchRelatives(mut self, fetchRelatives: bool) -> Self { self.fetchRelatives = Some(fetchRelatives); self }
pub fn build(self) -> GetPartialAXTreeParams<'a> {
GetPartialAXTreeParams {
nodeId: self.nodeId,
backendNodeId: self.backendNodeId,
objectId: self.objectId,
fetchRelatives: self.fetchRelatives,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetPartialAXTreeReturns<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetPartialAXTreeReturns<'a> {
pub fn builder(nodes: Vec<AXNode<'a>>) -> GetPartialAXTreeReturnsBuilder<'a> {
GetPartialAXTreeReturnsBuilder {
nodes: nodes,
}
}
pub fn nodes(&self) -> &[AXNode<'a>] { &self.nodes }
}
pub struct GetPartialAXTreeReturnsBuilder<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetPartialAXTreeReturnsBuilder<'a> {
pub fn build(self) -> GetPartialAXTreeReturns<'a> {
GetPartialAXTreeReturns {
nodes: self.nodes,
}
}
}
impl<'a> GetPartialAXTreeParams<'a> { pub const METHOD: &'static str = "Accessibility.getPartialAXTree"; }
impl<'a> crate::CdpCommand<'a> for GetPartialAXTreeParams<'a> {
const METHOD: &'static str = "Accessibility.getPartialAXTree";
type Response = GetPartialAXTreeReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetFullAXTreeParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
depth: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetFullAXTreeParams<'a> {
pub fn builder() -> GetFullAXTreeParamsBuilder<'a> {
GetFullAXTreeParamsBuilder {
depth: None,
frameId: None,
}
}
pub fn depth(&self) -> Option<i64> { self.depth }
pub fn frameId(&self) -> Option<&crate::page::FrameId<'a>> { self.frameId.as_ref() }
}
#[derive(Default)]
pub struct GetFullAXTreeParamsBuilder<'a> {
depth: Option<i64>,
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetFullAXTreeParamsBuilder<'a> {
pub fn depth(mut self, depth: i64) -> Self { self.depth = Some(depth); self }
pub fn frameId(mut self, frameId: crate::page::FrameId<'a>) -> Self { self.frameId = Some(frameId); self }
pub fn build(self) -> GetFullAXTreeParams<'a> {
GetFullAXTreeParams {
depth: self.depth,
frameId: self.frameId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetFullAXTreeReturns<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetFullAXTreeReturns<'a> {
pub fn builder(nodes: Vec<AXNode<'a>>) -> GetFullAXTreeReturnsBuilder<'a> {
GetFullAXTreeReturnsBuilder {
nodes: nodes,
}
}
pub fn nodes(&self) -> &[AXNode<'a>] { &self.nodes }
}
pub struct GetFullAXTreeReturnsBuilder<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetFullAXTreeReturnsBuilder<'a> {
pub fn build(self) -> GetFullAXTreeReturns<'a> {
GetFullAXTreeReturns {
nodes: self.nodes,
}
}
}
impl<'a> GetFullAXTreeParams<'a> { pub const METHOD: &'static str = "Accessibility.getFullAXTree"; }
impl<'a> crate::CdpCommand<'a> for GetFullAXTreeParams<'a> {
const METHOD: &'static str = "Accessibility.getFullAXTree";
type Response = GetFullAXTreeReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetRootAXNodeParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetRootAXNodeParams<'a> {
pub fn builder() -> GetRootAXNodeParamsBuilder<'a> {
GetRootAXNodeParamsBuilder {
frameId: None,
}
}
pub fn frameId(&self) -> Option<&crate::page::FrameId<'a>> { self.frameId.as_ref() }
}
#[derive(Default)]
pub struct GetRootAXNodeParamsBuilder<'a> {
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetRootAXNodeParamsBuilder<'a> {
pub fn frameId(mut self, frameId: crate::page::FrameId<'a>) -> Self { self.frameId = Some(frameId); self }
pub fn build(self) -> GetRootAXNodeParams<'a> {
GetRootAXNodeParams {
frameId: self.frameId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetRootAXNodeReturns<'a> {
node: AXNode<'a>,
}
impl<'a> GetRootAXNodeReturns<'a> {
pub fn builder(node: AXNode<'a>) -> GetRootAXNodeReturnsBuilder<'a> {
GetRootAXNodeReturnsBuilder {
node: node,
}
}
pub fn node(&self) -> &AXNode<'a> { &self.node }
}
pub struct GetRootAXNodeReturnsBuilder<'a> {
node: AXNode<'a>,
}
impl<'a> GetRootAXNodeReturnsBuilder<'a> {
pub fn build(self) -> GetRootAXNodeReturns<'a> {
GetRootAXNodeReturns {
node: self.node,
}
}
}
impl<'a> GetRootAXNodeParams<'a> { pub const METHOD: &'static str = "Accessibility.getRootAXNode"; }
impl<'a> crate::CdpCommand<'a> for GetRootAXNodeParams<'a> {
const METHOD: &'static str = "Accessibility.getRootAXNode";
type Response = GetRootAXNodeReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetAXNodeAndAncestorsParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
nodeId: Option<crate::dom::NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
backendNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
}
impl<'a> GetAXNodeAndAncestorsParams<'a> {
pub fn builder() -> GetAXNodeAndAncestorsParamsBuilder<'a> {
GetAXNodeAndAncestorsParamsBuilder {
nodeId: None,
backendNodeId: None,
objectId: None,
}
}
pub fn nodeId(&self) -> Option<&crate::dom::NodeId> { self.nodeId.as_ref() }
pub fn backendNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.backendNodeId.as_ref() }
pub fn objectId(&self) -> Option<&crate::runtime::RemoteObjectId<'a>> { self.objectId.as_ref() }
}
#[derive(Default)]
pub struct GetAXNodeAndAncestorsParamsBuilder<'a> {
nodeId: Option<crate::dom::NodeId>,
backendNodeId: Option<crate::dom::BackendNodeId>,
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
}
impl<'a> GetAXNodeAndAncestorsParamsBuilder<'a> {
pub fn nodeId(mut self, nodeId: crate::dom::NodeId) -> Self { self.nodeId = Some(nodeId); self }
pub fn backendNodeId(mut self, backendNodeId: crate::dom::BackendNodeId) -> Self { self.backendNodeId = Some(backendNodeId); self }
pub fn objectId(mut self, objectId: crate::runtime::RemoteObjectId<'a>) -> Self { self.objectId = Some(objectId); self }
pub fn build(self) -> GetAXNodeAndAncestorsParams<'a> {
GetAXNodeAndAncestorsParams {
nodeId: self.nodeId,
backendNodeId: self.backendNodeId,
objectId: self.objectId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetAXNodeAndAncestorsReturns<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetAXNodeAndAncestorsReturns<'a> {
pub fn builder(nodes: Vec<AXNode<'a>>) -> GetAXNodeAndAncestorsReturnsBuilder<'a> {
GetAXNodeAndAncestorsReturnsBuilder {
nodes: nodes,
}
}
pub fn nodes(&self) -> &[AXNode<'a>] { &self.nodes }
}
pub struct GetAXNodeAndAncestorsReturnsBuilder<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetAXNodeAndAncestorsReturnsBuilder<'a> {
pub fn build(self) -> GetAXNodeAndAncestorsReturns<'a> {
GetAXNodeAndAncestorsReturns {
nodes: self.nodes,
}
}
}
impl<'a> GetAXNodeAndAncestorsParams<'a> { pub const METHOD: &'static str = "Accessibility.getAXNodeAndAncestors"; }
impl<'a> crate::CdpCommand<'a> for GetAXNodeAndAncestorsParams<'a> {
const METHOD: &'static str = "Accessibility.getAXNodeAndAncestors";
type Response = GetAXNodeAndAncestorsReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetChildAXNodesParams<'a> {
id: AXNodeId<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetChildAXNodesParams<'a> {
pub fn builder(id: AXNodeId<'a>) -> GetChildAXNodesParamsBuilder<'a> {
GetChildAXNodesParamsBuilder {
id: id,
frameId: None,
}
}
pub fn id(&self) -> &AXNodeId<'a> { &self.id }
pub fn frameId(&self) -> Option<&crate::page::FrameId<'a>> { self.frameId.as_ref() }
}
pub struct GetChildAXNodesParamsBuilder<'a> {
id: AXNodeId<'a>,
frameId: Option<crate::page::FrameId<'a>>,
}
impl<'a> GetChildAXNodesParamsBuilder<'a> {
pub fn frameId(mut self, frameId: crate::page::FrameId<'a>) -> Self { self.frameId = Some(frameId); self }
pub fn build(self) -> GetChildAXNodesParams<'a> {
GetChildAXNodesParams {
id: self.id,
frameId: self.frameId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetChildAXNodesReturns<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetChildAXNodesReturns<'a> {
pub fn builder(nodes: Vec<AXNode<'a>>) -> GetChildAXNodesReturnsBuilder<'a> {
GetChildAXNodesReturnsBuilder {
nodes: nodes,
}
}
pub fn nodes(&self) -> &[AXNode<'a>] { &self.nodes }
}
pub struct GetChildAXNodesReturnsBuilder<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> GetChildAXNodesReturnsBuilder<'a> {
pub fn build(self) -> GetChildAXNodesReturns<'a> {
GetChildAXNodesReturns {
nodes: self.nodes,
}
}
}
impl<'a> GetChildAXNodesParams<'a> { pub const METHOD: &'static str = "Accessibility.getChildAXNodes"; }
impl<'a> crate::CdpCommand<'a> for GetChildAXNodesParams<'a> {
const METHOD: &'static str = "Accessibility.getChildAXNodes";
type Response = GetChildAXNodesReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct QueryAXTreeParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
nodeId: Option<crate::dom::NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
backendNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
accessibleName: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
role: Option<Cow<'a, str>>,
}
impl<'a> QueryAXTreeParams<'a> {
pub fn builder() -> QueryAXTreeParamsBuilder<'a> {
QueryAXTreeParamsBuilder {
nodeId: None,
backendNodeId: None,
objectId: None,
accessibleName: None,
role: None,
}
}
pub fn nodeId(&self) -> Option<&crate::dom::NodeId> { self.nodeId.as_ref() }
pub fn backendNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.backendNodeId.as_ref() }
pub fn objectId(&self) -> Option<&crate::runtime::RemoteObjectId<'a>> { self.objectId.as_ref() }
pub fn accessibleName(&self) -> Option<&str> { self.accessibleName.as_deref() }
pub fn role(&self) -> Option<&str> { self.role.as_deref() }
}
#[derive(Default)]
pub struct QueryAXTreeParamsBuilder<'a> {
nodeId: Option<crate::dom::NodeId>,
backendNodeId: Option<crate::dom::BackendNodeId>,
objectId: Option<crate::runtime::RemoteObjectId<'a>>,
accessibleName: Option<Cow<'a, str>>,
role: Option<Cow<'a, str>>,
}
impl<'a> QueryAXTreeParamsBuilder<'a> {
pub fn nodeId(mut self, nodeId: crate::dom::NodeId) -> Self { self.nodeId = Some(nodeId); self }
pub fn backendNodeId(mut self, backendNodeId: crate::dom::BackendNodeId) -> Self { self.backendNodeId = Some(backendNodeId); self }
pub fn objectId(mut self, objectId: crate::runtime::RemoteObjectId<'a>) -> Self { self.objectId = Some(objectId); self }
pub fn accessibleName(mut self, accessibleName: impl Into<Cow<'a, str>>) -> Self { self.accessibleName = Some(accessibleName.into()); self }
pub fn role(mut self, role: impl Into<Cow<'a, str>>) -> Self { self.role = Some(role.into()); self }
pub fn build(self) -> QueryAXTreeParams<'a> {
QueryAXTreeParams {
nodeId: self.nodeId,
backendNodeId: self.backendNodeId,
objectId: self.objectId,
accessibleName: self.accessibleName,
role: self.role,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct QueryAXTreeReturns<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> QueryAXTreeReturns<'a> {
pub fn builder(nodes: Vec<AXNode<'a>>) -> QueryAXTreeReturnsBuilder<'a> {
QueryAXTreeReturnsBuilder {
nodes: nodes,
}
}
pub fn nodes(&self) -> &[AXNode<'a>] { &self.nodes }
}
pub struct QueryAXTreeReturnsBuilder<'a> {
nodes: Vec<AXNode<'a>>,
}
impl<'a> QueryAXTreeReturnsBuilder<'a> {
pub fn build(self) -> QueryAXTreeReturns<'a> {
QueryAXTreeReturns {
nodes: self.nodes,
}
}
}
impl<'a> QueryAXTreeParams<'a> { pub const METHOD: &'static str = "Accessibility.queryAXTree"; }
impl<'a> crate::CdpCommand<'a> for QueryAXTreeParams<'a> {
const METHOD: &'static str = "Accessibility.queryAXTree";
type Response = QueryAXTreeReturns<'a>;
}