Skip to main content

rustenium_cdp_definitions/browser_protocol/accessibility/
command_builders.rs

1use super::commands::*;
2#[derive(Debug, Clone, Default)]
3pub struct DisableBuilder;
4impl DisableBuilder {
5    pub fn new() -> Self {
6        Self
7    }
8    pub fn build(self) -> Disable {
9        Disable {
10            method: DisableMethod::Disable,
11            params: DisableParams {},
12        }
13    }
14}
15impl Disable {
16    pub fn builder() -> DisableBuilder {
17        DisableBuilder
18    }
19}
20#[derive(Debug, Clone, Default)]
21pub struct EnableBuilder;
22impl EnableBuilder {
23    pub fn new() -> Self {
24        Self
25    }
26    pub fn build(self) -> Enable {
27        Enable {
28            method: EnableMethod::Enable,
29            params: EnableParams {},
30        }
31    }
32}
33impl Enable {
34    pub fn builder() -> EnableBuilder {
35        EnableBuilder
36    }
37}
38impl GetPartialAxTree {
39    pub fn builder() -> GetPartialAxTreeBuilder {
40        <GetPartialAxTreeBuilder as Default>::default()
41    }
42}
43#[derive(Default, Clone)]
44pub struct GetPartialAxTreeBuilder {
45    node_id: Option<crate::browser_protocol::dom::types::NodeId>,
46    backend_node_id: Option<crate::browser_protocol::dom::types::BackendNodeId>,
47    object_id: Option<crate::js_protocol::runtime::types::RemoteObjectId>,
48    fetch_relatives: Option<bool>,
49}
50impl GetPartialAxTreeBuilder {
51    pub fn node_id(
52        mut self,
53        node_id: impl Into<crate::browser_protocol::dom::types::NodeId>,
54    ) -> Self {
55        self.node_id = Some(node_id.into());
56        self
57    }
58    pub fn backend_node_id(
59        mut self,
60        backend_node_id: impl Into<crate::browser_protocol::dom::types::BackendNodeId>,
61    ) -> Self {
62        self.backend_node_id = Some(backend_node_id.into());
63        self
64    }
65    pub fn object_id(
66        mut self,
67        object_id: impl Into<crate::js_protocol::runtime::types::RemoteObjectId>,
68    ) -> Self {
69        self.object_id = Some(object_id.into());
70        self
71    }
72    pub fn fetch_relatives(mut self, fetch_relatives: impl Into<bool>) -> Self {
73        self.fetch_relatives = Some(fetch_relatives.into());
74        self
75    }
76    pub fn build(self) -> GetPartialAxTree {
77        GetPartialAxTree {
78            method: GetPartialAxTreeMethod::GetPartialAxTree,
79            params: GetPartialAxTreeParams {
80                node_id: self.node_id,
81                backend_node_id: self.backend_node_id,
82                object_id: self.object_id,
83                fetch_relatives: self.fetch_relatives,
84            },
85        }
86    }
87}
88impl GetFullAxTree {
89    pub fn builder() -> GetFullAxTreeBuilder {
90        <GetFullAxTreeBuilder as Default>::default()
91    }
92}
93#[derive(Default, Clone)]
94pub struct GetFullAxTreeBuilder {
95    depth: Option<i64>,
96    frame_id: Option<crate::browser_protocol::page::types::FrameId>,
97}
98impl GetFullAxTreeBuilder {
99    pub fn depth(mut self, depth: impl Into<i64>) -> Self {
100        self.depth = Some(depth.into());
101        self
102    }
103    pub fn frame_id(
104        mut self,
105        frame_id: impl Into<crate::browser_protocol::page::types::FrameId>,
106    ) -> Self {
107        self.frame_id = Some(frame_id.into());
108        self
109    }
110    pub fn build(self) -> GetFullAxTree {
111        GetFullAxTree {
112            method: GetFullAxTreeMethod::GetFullAxTree,
113            params: GetFullAxTreeParams {
114                depth: self.depth,
115                frame_id: self.frame_id,
116            },
117        }
118    }
119}
120impl GetRootAxNode {
121    pub fn builder() -> GetRootAxNodeBuilder {
122        <GetRootAxNodeBuilder as Default>::default()
123    }
124}
125#[derive(Default, Clone)]
126pub struct GetRootAxNodeBuilder {
127    frame_id: Option<crate::browser_protocol::page::types::FrameId>,
128}
129impl GetRootAxNodeBuilder {
130    pub fn frame_id(
131        mut self,
132        frame_id: impl Into<crate::browser_protocol::page::types::FrameId>,
133    ) -> Self {
134        self.frame_id = Some(frame_id.into());
135        self
136    }
137    pub fn build(self) -> GetRootAxNode {
138        GetRootAxNode {
139            method: GetRootAxNodeMethod::GetRootAxNode,
140            params: GetRootAxNodeParams {
141                frame_id: self.frame_id,
142            },
143        }
144    }
145}
146impl GetAxNodeAndAncestors {
147    pub fn builder() -> GetAxNodeAndAncestorsBuilder {
148        <GetAxNodeAndAncestorsBuilder as Default>::default()
149    }
150}
151#[derive(Default, Clone)]
152pub struct GetAxNodeAndAncestorsBuilder {
153    node_id: Option<crate::browser_protocol::dom::types::NodeId>,
154    backend_node_id: Option<crate::browser_protocol::dom::types::BackendNodeId>,
155    object_id: Option<crate::js_protocol::runtime::types::RemoteObjectId>,
156}
157impl GetAxNodeAndAncestorsBuilder {
158    pub fn node_id(
159        mut self,
160        node_id: impl Into<crate::browser_protocol::dom::types::NodeId>,
161    ) -> Self {
162        self.node_id = Some(node_id.into());
163        self
164    }
165    pub fn backend_node_id(
166        mut self,
167        backend_node_id: impl Into<crate::browser_protocol::dom::types::BackendNodeId>,
168    ) -> Self {
169        self.backend_node_id = Some(backend_node_id.into());
170        self
171    }
172    pub fn object_id(
173        mut self,
174        object_id: impl Into<crate::js_protocol::runtime::types::RemoteObjectId>,
175    ) -> Self {
176        self.object_id = Some(object_id.into());
177        self
178    }
179    pub fn build(self) -> GetAxNodeAndAncestors {
180        GetAxNodeAndAncestors {
181            method: GetAxNodeAndAncestorsMethod::GetAxNodeAndAncestors,
182            params: GetAxNodeAndAncestorsParams {
183                node_id: self.node_id,
184                backend_node_id: self.backend_node_id,
185                object_id: self.object_id,
186            },
187        }
188    }
189}
190impl GetChildAxNodes {
191    pub fn builder() -> GetChildAxNodesBuilder {
192        <GetChildAxNodesBuilder as Default>::default()
193    }
194}
195#[derive(Default, Clone)]
196pub struct GetChildAxNodesBuilder {
197    id: Option<super::types::AxNodeId>,
198    frame_id: Option<crate::browser_protocol::page::types::FrameId>,
199}
200impl GetChildAxNodesBuilder {
201    pub fn id(mut self, id: impl Into<super::types::AxNodeId>) -> Self {
202        self.id = Some(id.into());
203        self
204    }
205    pub fn frame_id(
206        mut self,
207        frame_id: impl Into<crate::browser_protocol::page::types::FrameId>,
208    ) -> Self {
209        self.frame_id = Some(frame_id.into());
210        self
211    }
212    pub fn build(self) -> Result<GetChildAxNodes, String> {
213        Ok(GetChildAxNodes {
214            method: GetChildAxNodesMethod::GetChildAxNodes,
215            params: GetChildAxNodesParams {
216                id: self
217                    .id
218                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(id)))?,
219                frame_id: self.frame_id,
220            },
221        })
222    }
223}
224impl QueryAxTree {
225    pub fn builder() -> QueryAxTreeBuilder {
226        <QueryAxTreeBuilder as Default>::default()
227    }
228}
229#[derive(Default, Clone)]
230pub struct QueryAxTreeBuilder {
231    node_id: Option<crate::browser_protocol::dom::types::NodeId>,
232    backend_node_id: Option<crate::browser_protocol::dom::types::BackendNodeId>,
233    object_id: Option<crate::js_protocol::runtime::types::RemoteObjectId>,
234    accessible_name: Option<String>,
235    role: Option<String>,
236}
237impl QueryAxTreeBuilder {
238    pub fn node_id(
239        mut self,
240        node_id: impl Into<crate::browser_protocol::dom::types::NodeId>,
241    ) -> Self {
242        self.node_id = Some(node_id.into());
243        self
244    }
245    pub fn backend_node_id(
246        mut self,
247        backend_node_id: impl Into<crate::browser_protocol::dom::types::BackendNodeId>,
248    ) -> Self {
249        self.backend_node_id = Some(backend_node_id.into());
250        self
251    }
252    pub fn object_id(
253        mut self,
254        object_id: impl Into<crate::js_protocol::runtime::types::RemoteObjectId>,
255    ) -> Self {
256        self.object_id = Some(object_id.into());
257        self
258    }
259    pub fn accessible_name(mut self, accessible_name: impl Into<String>) -> Self {
260        self.accessible_name = Some(accessible_name.into());
261        self
262    }
263    pub fn role(mut self, role: impl Into<String>) -> Self {
264        self.role = Some(role.into());
265        self
266    }
267    pub fn build(self) -> QueryAxTree {
268        QueryAxTree {
269            method: QueryAxTreeMethod::QueryAxTree,
270            params: QueryAxTreeParams {
271                node_id: self.node_id,
272                backend_node_id: self.backend_node_id,
273                object_id: self.object_id,
274                accessible_name: self.accessible_name,
275                role: self.role,
276            },
277        }
278    }
279}