Skip to main content

rustenium_cdp_definitions/browser_protocol/dom/
events.rs

1use serde::{Deserialize, Serialize};
2#[doc = "Fired when `Element`'s attribute is modified.\n[attributeModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-attributeModified)"]
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4pub struct AttributeModifiedParams {
5    #[doc = "Id of the node that has changed."]
6    #[serde(rename = "nodeId")]
7    pub node_id: Box<super::types::NodeId>,
8    #[doc = "Attribute name."]
9    #[serde(rename = "name")]
10    pub name: String,
11    #[doc = "Attribute value."]
12    #[serde(rename = "value")]
13    pub value: String,
14}
15#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
16pub enum AttributeModifiedMethod {
17    #[serde(rename = "DOM.attributeModified")]
18    AttributeModified,
19}
20#[doc = "Fired when `Element`'s attribute is modified.\n[attributeModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-attributeModified)"]
21#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
22pub struct AttributeModified {
23    pub method: AttributeModifiedMethod,
24    pub params: AttributeModifiedParams,
25}
26impl AttributeModified {
27    pub const IDENTIFIER: &'static str = "DOM.attributeModified";
28    pub fn identifier(&self) -> &'static str {
29        Self::IDENTIFIER
30    }
31}
32#[doc = "Fired when `Element`'s adoptedStyleSheets are modified.\n[adoptedStyleSheetsModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-adoptedStyleSheetsModified)"]
33#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
34pub struct AdoptedStyleSheetsModifiedParams {
35    #[doc = "Id of the node that has changed."]
36    #[serde(rename = "nodeId")]
37    pub node_id: Box<super::types::NodeId>,
38    #[doc = "New adoptedStyleSheets array."]
39    #[serde(rename = "adoptedStyleSheets")]
40    #[serde(skip_serializing_if = "Vec::is_empty")]
41    pub adopted_style_sheets: Vec<super::types::StyleSheetId>,
42}
43#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
44pub enum AdoptedStyleSheetsModifiedMethod {
45    #[serde(rename = "DOM.adoptedStyleSheetsModified")]
46    AdoptedStyleSheetsModified,
47}
48#[doc = "Fired when `Element`'s adoptedStyleSheets are modified.\n[adoptedStyleSheetsModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-adoptedStyleSheetsModified)"]
49#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
50pub struct AdoptedStyleSheetsModified {
51    pub method: AdoptedStyleSheetsModifiedMethod,
52    pub params: AdoptedStyleSheetsModifiedParams,
53}
54impl AdoptedStyleSheetsModified {
55    pub const IDENTIFIER: &'static str = "DOM.adoptedStyleSheetsModified";
56    pub fn identifier(&self) -> &'static str {
57        Self::IDENTIFIER
58    }
59}
60#[doc = "Fired when `Element`'s attribute is removed.\n[attributeRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-attributeRemoved)"]
61#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
62pub struct AttributeRemovedParams {
63    #[doc = "Id of the node that has changed."]
64    #[serde(rename = "nodeId")]
65    pub node_id: Box<super::types::NodeId>,
66    #[doc = "A ttribute name."]
67    #[serde(rename = "name")]
68    pub name: String,
69}
70#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
71pub enum AttributeRemovedMethod {
72    #[serde(rename = "DOM.attributeRemoved")]
73    AttributeRemoved,
74}
75#[doc = "Fired when `Element`'s attribute is removed.\n[attributeRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-attributeRemoved)"]
76#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
77pub struct AttributeRemoved {
78    pub method: AttributeRemovedMethod,
79    pub params: AttributeRemovedParams,
80}
81impl AttributeRemoved {
82    pub const IDENTIFIER: &'static str = "DOM.attributeRemoved";
83    pub fn identifier(&self) -> &'static str {
84        Self::IDENTIFIER
85    }
86}
87#[doc = "Mirrors `DOMCharacterDataModified` event.\n[characterDataModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-characterDataModified)"]
88#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
89pub struct CharacterDataModifiedParams {
90    #[doc = "Id of the node that has changed."]
91    #[serde(rename = "nodeId")]
92    pub node_id: Box<super::types::NodeId>,
93    #[doc = "New text value."]
94    #[serde(rename = "characterData")]
95    pub character_data: String,
96}
97#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
98pub enum CharacterDataModifiedMethod {
99    #[serde(rename = "DOM.characterDataModified")]
100    CharacterDataModified,
101}
102#[doc = "Mirrors `DOMCharacterDataModified` event.\n[characterDataModified](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-characterDataModified)"]
103#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
104pub struct CharacterDataModified {
105    pub method: CharacterDataModifiedMethod,
106    pub params: CharacterDataModifiedParams,
107}
108impl CharacterDataModified {
109    pub const IDENTIFIER: &'static str = "DOM.characterDataModified";
110    pub fn identifier(&self) -> &'static str {
111        Self::IDENTIFIER
112    }
113}
114#[doc = "Fired when `Container`'s child node count has changed.\n[childNodeCountUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeCountUpdated)"]
115#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
116pub struct ChildNodeCountUpdatedParams {
117    #[doc = "Id of the node that has changed."]
118    #[serde(rename = "nodeId")]
119    pub node_id: Box<super::types::NodeId>,
120    #[doc = "New node count."]
121    #[serde(rename = "childNodeCount")]
122    pub child_node_count: i64,
123}
124#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
125pub enum ChildNodeCountUpdatedMethod {
126    #[serde(rename = "DOM.childNodeCountUpdated")]
127    ChildNodeCountUpdated,
128}
129#[doc = "Fired when `Container`'s child node count has changed.\n[childNodeCountUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeCountUpdated)"]
130#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
131pub struct ChildNodeCountUpdated {
132    pub method: ChildNodeCountUpdatedMethod,
133    pub params: ChildNodeCountUpdatedParams,
134}
135impl ChildNodeCountUpdated {
136    pub const IDENTIFIER: &'static str = "DOM.childNodeCountUpdated";
137    pub fn identifier(&self) -> &'static str {
138        Self::IDENTIFIER
139    }
140}
141#[doc = "Mirrors `DOMNodeInserted` event.\n[childNodeInserted](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeInserted)"]
142#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
143pub struct ChildNodeInsertedParams {
144    #[doc = "Id of the node that has changed."]
145    #[serde(rename = "parentNodeId")]
146    pub parent_node_id: super::types::NodeId,
147    #[doc = "Id of the previous sibling."]
148    #[serde(rename = "previousNodeId")]
149    pub previous_node_id: super::types::NodeId,
150    #[doc = "Inserted node data."]
151    #[serde(rename = "node")]
152    pub node: Box<super::types::Node>,
153}
154#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
155pub enum ChildNodeInsertedMethod {
156    #[serde(rename = "DOM.childNodeInserted")]
157    ChildNodeInserted,
158}
159#[doc = "Mirrors `DOMNodeInserted` event.\n[childNodeInserted](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeInserted)"]
160#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
161pub struct ChildNodeInserted {
162    pub method: ChildNodeInsertedMethod,
163    pub params: ChildNodeInsertedParams,
164}
165impl ChildNodeInserted {
166    pub const IDENTIFIER: &'static str = "DOM.childNodeInserted";
167    pub fn identifier(&self) -> &'static str {
168        Self::IDENTIFIER
169    }
170}
171#[doc = "Mirrors `DOMNodeRemoved` event.\n[childNodeRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeRemoved)"]
172#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
173pub struct ChildNodeRemovedParams {
174    #[doc = "Parent id."]
175    #[serde(rename = "parentNodeId")]
176    pub parent_node_id: super::types::NodeId,
177    #[doc = "Id of the node that has been removed."]
178    #[serde(rename = "nodeId")]
179    pub node_id: Box<super::types::NodeId>,
180}
181#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
182pub enum ChildNodeRemovedMethod {
183    #[serde(rename = "DOM.childNodeRemoved")]
184    ChildNodeRemoved,
185}
186#[doc = "Mirrors `DOMNodeRemoved` event.\n[childNodeRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-childNodeRemoved)"]
187#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
188pub struct ChildNodeRemoved {
189    pub method: ChildNodeRemovedMethod,
190    pub params: ChildNodeRemovedParams,
191}
192impl ChildNodeRemoved {
193    pub const IDENTIFIER: &'static str = "DOM.childNodeRemoved";
194    pub fn identifier(&self) -> &'static str {
195        Self::IDENTIFIER
196    }
197}
198#[doc = "Called when distribution is changed.\n[distributedNodesUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-distributedNodesUpdated)"]
199#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
200pub struct DistributedNodesUpdatedParams {
201    #[doc = "Insertion point where distributed nodes were updated."]
202    #[serde(rename = "insertionPointId")]
203    pub insertion_point_id: super::types::NodeId,
204    #[doc = "Distributed nodes for given insertion point."]
205    #[serde(rename = "distributedNodes")]
206    #[serde(skip_serializing_if = "Vec::is_empty")]
207    pub distributed_nodes: Vec<super::types::BackendNode>,
208}
209#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
210pub enum DistributedNodesUpdatedMethod {
211    #[serde(rename = "DOM.distributedNodesUpdated")]
212    DistributedNodesUpdated,
213}
214#[doc = "Called when distribution is changed.\n[distributedNodesUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-distributedNodesUpdated)"]
215#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
216pub struct DistributedNodesUpdated {
217    pub method: DistributedNodesUpdatedMethod,
218    pub params: DistributedNodesUpdatedParams,
219}
220impl DistributedNodesUpdated {
221    pub const IDENTIFIER: &'static str = "DOM.distributedNodesUpdated";
222    pub fn identifier(&self) -> &'static str {
223        Self::IDENTIFIER
224    }
225}
226#[doc = "Fired when `Document` has been totally updated. Node ids are no longer valid.\n[documentUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-documentUpdated)"]
227#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
228pub struct DocumentUpdatedParams {}
229#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
230pub enum DocumentUpdatedMethod {
231    #[serde(rename = "DOM.documentUpdated")]
232    DocumentUpdated,
233}
234#[doc = "Fired when `Document` has been totally updated. Node ids are no longer valid.\n[documentUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-documentUpdated)"]
235#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
236pub struct DocumentUpdated {
237    pub method: DocumentUpdatedMethod,
238    pub params: DocumentUpdatedParams,
239}
240impl DocumentUpdated {
241    pub const IDENTIFIER: &'static str = "DOM.documentUpdated";
242    pub fn identifier(&self) -> &'static str {
243        Self::IDENTIFIER
244    }
245}
246#[doc = "Fired when `Element`'s inline style is modified via a CSS property modification.\n[inlineStyleInvalidated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-inlineStyleInvalidated)"]
247#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
248pub struct InlineStyleInvalidatedParams {
249    #[doc = "Ids of the nodes for which the inline styles have been invalidated."]
250    #[serde(rename = "nodeIds")]
251    #[serde(skip_serializing_if = "Vec::is_empty")]
252    pub node_ids: Vec<super::types::NodeId>,
253}
254#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
255pub enum InlineStyleInvalidatedMethod {
256    #[serde(rename = "DOM.inlineStyleInvalidated")]
257    InlineStyleInvalidated,
258}
259#[doc = "Fired when `Element`'s inline style is modified via a CSS property modification.\n[inlineStyleInvalidated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-inlineStyleInvalidated)"]
260#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
261pub struct InlineStyleInvalidated {
262    pub method: InlineStyleInvalidatedMethod,
263    pub params: InlineStyleInvalidatedParams,
264}
265impl InlineStyleInvalidated {
266    pub const IDENTIFIER: &'static str = "DOM.inlineStyleInvalidated";
267    pub fn identifier(&self) -> &'static str {
268        Self::IDENTIFIER
269    }
270}
271#[doc = "Called when a pseudo element is added to an element.\n[pseudoElementAdded](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-pseudoElementAdded)"]
272#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
273pub struct PseudoElementAddedParams {
274    #[doc = "Pseudo element's parent element id."]
275    #[serde(rename = "parentId")]
276    pub parent_id: super::types::NodeId,
277    #[doc = "The added pseudo element."]
278    #[serde(rename = "pseudoElement")]
279    pub pseudo_element: super::types::Node,
280}
281#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
282pub enum PseudoElementAddedMethod {
283    #[serde(rename = "DOM.pseudoElementAdded")]
284    PseudoElementAdded,
285}
286#[doc = "Called when a pseudo element is added to an element.\n[pseudoElementAdded](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-pseudoElementAdded)"]
287#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
288pub struct PseudoElementAdded {
289    pub method: PseudoElementAddedMethod,
290    pub params: PseudoElementAddedParams,
291}
292impl PseudoElementAdded {
293    pub const IDENTIFIER: &'static str = "DOM.pseudoElementAdded";
294    pub fn identifier(&self) -> &'static str {
295        Self::IDENTIFIER
296    }
297}
298#[doc = "Called when top layer elements are changed.\n[topLayerElementsUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-topLayerElementsUpdated)"]
299#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
300pub struct TopLayerElementsUpdatedParams {}
301#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
302pub enum TopLayerElementsUpdatedMethod {
303    #[serde(rename = "DOM.topLayerElementsUpdated")]
304    TopLayerElementsUpdated,
305}
306#[doc = "Called when top layer elements are changed.\n[topLayerElementsUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-topLayerElementsUpdated)"]
307#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
308pub struct TopLayerElementsUpdated {
309    pub method: TopLayerElementsUpdatedMethod,
310    pub params: TopLayerElementsUpdatedParams,
311}
312impl TopLayerElementsUpdated {
313    pub const IDENTIFIER: &'static str = "DOM.topLayerElementsUpdated";
314    pub fn identifier(&self) -> &'static str {
315        Self::IDENTIFIER
316    }
317}
318#[doc = "Fired when a node's scrollability state changes.\n[scrollableFlagUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-scrollableFlagUpdated)"]
319#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
320pub struct ScrollableFlagUpdatedParams {
321    #[doc = "The id of the node."]
322    #[serde(rename = "nodeId")]
323    pub node_id: Box<super::types::NodeId>,
324    #[doc = "If the node is scrollable."]
325    #[serde(rename = "isScrollable")]
326    pub is_scrollable: bool,
327}
328#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
329pub enum ScrollableFlagUpdatedMethod {
330    #[serde(rename = "DOM.scrollableFlagUpdated")]
331    ScrollableFlagUpdated,
332}
333#[doc = "Fired when a node's scrollability state changes.\n[scrollableFlagUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-scrollableFlagUpdated)"]
334#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
335pub struct ScrollableFlagUpdated {
336    pub method: ScrollableFlagUpdatedMethod,
337    pub params: ScrollableFlagUpdatedParams,
338}
339impl ScrollableFlagUpdated {
340    pub const IDENTIFIER: &'static str = "DOM.scrollableFlagUpdated";
341    pub fn identifier(&self) -> &'static str {
342        Self::IDENTIFIER
343    }
344}
345#[doc = "Fired when a node's ad related state changes.\n[adRelatedStateUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-adRelatedStateUpdated)"]
346#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
347pub struct AdRelatedStateUpdatedParams {
348    #[doc = "The id of the node."]
349    #[serde(rename = "nodeId")]
350    pub node_id: Box<super::types::NodeId>,
351    #[doc = "If the node is ad related."]
352    #[serde(rename = "isAdRelated")]
353    pub is_ad_related: bool,
354}
355#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
356pub enum AdRelatedStateUpdatedMethod {
357    #[serde(rename = "DOM.adRelatedStateUpdated")]
358    AdRelatedStateUpdated,
359}
360#[doc = "Fired when a node's ad related state changes.\n[adRelatedStateUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-adRelatedStateUpdated)"]
361#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
362pub struct AdRelatedStateUpdated {
363    pub method: AdRelatedStateUpdatedMethod,
364    pub params: AdRelatedStateUpdatedParams,
365}
366impl AdRelatedStateUpdated {
367    pub const IDENTIFIER: &'static str = "DOM.adRelatedStateUpdated";
368    pub fn identifier(&self) -> &'static str {
369        Self::IDENTIFIER
370    }
371}
372#[doc = "Fired when a node's starting styles changes.\n[affectedByStartingStylesFlagUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-affectedByStartingStylesFlagUpdated)"]
373#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
374pub struct AffectedByStartingStylesFlagUpdatedParams {
375    #[doc = "The id of the node."]
376    #[serde(rename = "nodeId")]
377    pub node_id: Box<super::types::NodeId>,
378    #[doc = "If the node has starting styles."]
379    #[serde(rename = "affectedByStartingStyles")]
380    pub affected_by_starting_styles: bool,
381}
382#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
383pub enum AffectedByStartingStylesFlagUpdatedMethod {
384    #[serde(rename = "DOM.affectedByStartingStylesFlagUpdated")]
385    AffectedByStartingStylesFlagUpdated,
386}
387#[doc = "Fired when a node's starting styles changes.\n[affectedByStartingStylesFlagUpdated](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-affectedByStartingStylesFlagUpdated)"]
388#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
389pub struct AffectedByStartingStylesFlagUpdated {
390    pub method: AffectedByStartingStylesFlagUpdatedMethod,
391    pub params: AffectedByStartingStylesFlagUpdatedParams,
392}
393impl AffectedByStartingStylesFlagUpdated {
394    pub const IDENTIFIER: &'static str = "DOM.affectedByStartingStylesFlagUpdated";
395    pub fn identifier(&self) -> &'static str {
396        Self::IDENTIFIER
397    }
398}
399#[doc = "Called when a pseudo element is removed from an element.\n[pseudoElementRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-pseudoElementRemoved)"]
400#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
401pub struct PseudoElementRemovedParams {
402    #[doc = "Pseudo element's parent element id."]
403    #[serde(rename = "parentId")]
404    pub parent_id: super::types::NodeId,
405    #[doc = "The removed pseudo element id."]
406    #[serde(rename = "pseudoElementId")]
407    pub pseudo_element_id: super::types::NodeId,
408}
409#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
410pub enum PseudoElementRemovedMethod {
411    #[serde(rename = "DOM.pseudoElementRemoved")]
412    PseudoElementRemoved,
413}
414#[doc = "Called when a pseudo element is removed from an element.\n[pseudoElementRemoved](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-pseudoElementRemoved)"]
415#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
416pub struct PseudoElementRemoved {
417    pub method: PseudoElementRemovedMethod,
418    pub params: PseudoElementRemovedParams,
419}
420impl PseudoElementRemoved {
421    pub const IDENTIFIER: &'static str = "DOM.pseudoElementRemoved";
422    pub fn identifier(&self) -> &'static str {
423        Self::IDENTIFIER
424    }
425}
426#[doc = "Fired when backend wants to provide client with the missing DOM structure. This happens upon\nmost of the calls requesting node ids.\n[setChildNodes](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-setChildNodes)"]
427#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
428pub struct SetChildNodesParams {
429    #[doc = "Parent node id to populate with children."]
430    #[serde(rename = "parentId")]
431    pub parent_id: super::types::NodeId,
432    #[doc = "Child nodes array."]
433    #[serde(rename = "nodes")]
434    #[serde(skip_serializing_if = "Vec::is_empty")]
435    pub nodes: Vec<super::types::Node>,
436}
437#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
438pub enum SetChildNodesMethod {
439    #[serde(rename = "DOM.setChildNodes")]
440    SetChildNodes,
441}
442#[doc = "Fired when backend wants to provide client with the missing DOM structure. This happens upon\nmost of the calls requesting node ids.\n[setChildNodes](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-setChildNodes)"]
443#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
444pub struct SetChildNodes {
445    pub method: SetChildNodesMethod,
446    pub params: SetChildNodesParams,
447}
448impl SetChildNodes {
449    pub const IDENTIFIER: &'static str = "DOM.setChildNodes";
450    pub fn identifier(&self) -> &'static str {
451        Self::IDENTIFIER
452    }
453}
454#[doc = "Called when shadow root is popped from the element.\n[shadowRootPopped](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-shadowRootPopped)"]
455#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
456pub struct ShadowRootPoppedParams {
457    #[doc = "Host element id."]
458    #[serde(rename = "hostId")]
459    pub host_id: super::types::NodeId,
460    #[doc = "Shadow root id."]
461    #[serde(rename = "rootId")]
462    pub root_id: super::types::NodeId,
463}
464#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
465pub enum ShadowRootPoppedMethod {
466    #[serde(rename = "DOM.shadowRootPopped")]
467    ShadowRootPopped,
468}
469#[doc = "Called when shadow root is popped from the element.\n[shadowRootPopped](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-shadowRootPopped)"]
470#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
471pub struct ShadowRootPopped {
472    pub method: ShadowRootPoppedMethod,
473    pub params: ShadowRootPoppedParams,
474}
475impl ShadowRootPopped {
476    pub const IDENTIFIER: &'static str = "DOM.shadowRootPopped";
477    pub fn identifier(&self) -> &'static str {
478        Self::IDENTIFIER
479    }
480}
481#[doc = "Called when shadow root is pushed into the element.\n[shadowRootPushed](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-shadowRootPushed)"]
482#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
483pub struct ShadowRootPushedParams {
484    #[doc = "Host element id."]
485    #[serde(rename = "hostId")]
486    pub host_id: super::types::NodeId,
487    #[doc = "Shadow root."]
488    #[serde(rename = "root")]
489    pub root: super::types::Node,
490}
491#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
492pub enum ShadowRootPushedMethod {
493    #[serde(rename = "DOM.shadowRootPushed")]
494    ShadowRootPushed,
495}
496#[doc = "Called when shadow root is pushed into the element.\n[shadowRootPushed](https://chromedevtools.github.io/devtools-protocol/tot/DOM/#event-shadowRootPushed)"]
497#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
498pub struct ShadowRootPushed {
499    pub method: ShadowRootPushedMethod,
500    pub params: ShadowRootPushedParams,
501}
502impl ShadowRootPushed {
503    pub const IDENTIFIER: &'static str = "DOM.shadowRootPushed";
504    pub fn identifier(&self) -> &'static str {
505        Self::IDENTIFIER
506    }
507}
508group_enum ! (DomEvents { AttributeModified (AttributeModified) , AdoptedStyleSheetsModified (AdoptedStyleSheetsModified) , AttributeRemoved (AttributeRemoved) , CharacterDataModified (CharacterDataModified) , ChildNodeCountUpdated (ChildNodeCountUpdated) , ChildNodeInserted (ChildNodeInserted) , ChildNodeRemoved (ChildNodeRemoved) , DistributedNodesUpdated (DistributedNodesUpdated) , DocumentUpdated (DocumentUpdated) , InlineStyleInvalidated (InlineStyleInvalidated) , PseudoElementAdded (PseudoElementAdded) , TopLayerElementsUpdated (TopLayerElementsUpdated) , ScrollableFlagUpdated (ScrollableFlagUpdated) , AdRelatedStateUpdated (AdRelatedStateUpdated) , AffectedByStartingStylesFlagUpdated (AffectedByStartingStylesFlagUpdated) , PseudoElementRemoved (PseudoElementRemoved) , SetChildNodes (SetChildNodes) , ShadowRootPopped (ShadowRootPopped) , ShadowRootPushed (ShadowRootPushed) } + identifiable);