cdp_protocol/
performance_timeline.rs

1// Auto-generated from Chrome at version 143.0.7499.110 domain: PerformanceTimeline
2use super::dom;
3use super::network;
4use super::page;
5#[allow(unused_imports)]
6use super::types::*;
7#[allow(unused_imports)]
8use serde::{Deserialize, Serialize};
9#[allow(unused_imports)]
10use serde_json::Value as Json;
11#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
12pub struct LargestContentfulPaint {
13    #[serde(rename = "renderTime")]
14    pub render_time: network::TimeSinceEpoch,
15    #[serde(rename = "loadTime")]
16    pub load_time: network::TimeSinceEpoch,
17    #[serde(default)]
18    #[serde(rename = "size")]
19    pub size: JsFloat,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    #[serde(default)]
22    #[serde(rename = "elementId")]
23    pub element_id: Option<String>,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    #[serde(default)]
26    #[serde(rename = "url")]
27    pub url: Option<String>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    #[serde(rename = "nodeId")]
30    pub node_id: Option<dom::BackendNodeId>,
31}
32#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
33pub struct LayoutShiftAttribution {
34    #[serde(rename = "previousRect")]
35    pub previous_rect: dom::Rect,
36    #[serde(rename = "currentRect")]
37    pub current_rect: dom::Rect,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    #[serde(rename = "nodeId")]
40    pub node_id: Option<dom::BackendNodeId>,
41}
42#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
43pub struct LayoutShift {
44    #[serde(default)]
45    #[serde(rename = "value")]
46    pub value: JsFloat,
47    #[serde(default)]
48    #[serde(rename = "hadRecentInput")]
49    pub had_recent_input: bool,
50    #[serde(rename = "lastInputTime")]
51    pub last_input_time: network::TimeSinceEpoch,
52    #[serde(rename = "sources")]
53    pub sources: Vec<LayoutShiftAttribution>,
54}
55#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
56pub struct TimelineEvent {
57    #[serde(rename = "frameId")]
58    pub frame_id: page::FrameId,
59    #[serde(default)]
60    #[serde(rename = "type")]
61    pub r#type: String,
62    #[serde(default)]
63    #[serde(rename = "name")]
64    pub name: String,
65    #[serde(rename = "time")]
66    pub time: network::TimeSinceEpoch,
67    #[serde(skip_serializing_if = "Option::is_none")]
68    #[serde(default)]
69    #[serde(rename = "duration")]
70    pub duration: Option<JsFloat>,
71    #[serde(skip_serializing_if = "Option::is_none")]
72    #[serde(rename = "lcpDetails")]
73    pub lcp_details: Option<LargestContentfulPaint>,
74    #[serde(skip_serializing_if = "Option::is_none")]
75    #[serde(rename = "layoutShiftDetails")]
76    pub layout_shift_details: Option<LayoutShift>,
77}
78#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
79pub struct Enable {
80    #[serde(default)]
81    #[serde(rename = "eventTypes")]
82    pub event_types: Vec<String>,
83}
84#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
85#[serde(rename_all = "camelCase")]
86pub struct EnableReturnObject {}
87impl Method for Enable {
88    const NAME: &'static str = "PerformanceTimeline.enable";
89    type ReturnObject = EnableReturnObject;
90}
91pub mod events {
92    #[allow(unused_imports)]
93    use super::super::types::*;
94    #[allow(unused_imports)]
95    use serde::{Deserialize, Serialize};
96    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
97    pub struct TimelineEventAddedEvent {
98        pub params: TimelineEventAddedEventParams,
99    }
100    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
101    pub struct TimelineEventAddedEventParams {
102        #[serde(rename = "event")]
103        pub event: super::TimelineEvent,
104    }
105}