Skip to main content

cdp_protocol/
tracing.rs

1// Auto-generated from Chrome at version 146.0.7680.165 domain: Tracing
2#![allow(dead_code)]
3#[allow(unused_imports)]
4use super::types::*;
5#[allow(unused_imports)]
6use derive_builder::Builder;
7#[allow(unused_imports)]
8use serde::{Deserialize, Serialize};
9#[allow(unused_imports)]
10use serde_json::Value as Json;
11#[allow(deprecated)]
12#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
13pub enum TraceConfigRecordMode {
14    #[serde(rename = "recordUntilFull")]
15    RecordUntilFull,
16    #[serde(rename = "recordContinuously")]
17    RecordContinuously,
18    #[serde(rename = "recordAsMuchAsPossible")]
19    RecordAsMuchAsPossible,
20    #[serde(rename = "echoToConsole")]
21    EchoToConsole,
22}
23#[allow(deprecated)]
24#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
25pub enum StreamFormat {
26    #[serde(rename = "json")]
27    Json,
28    #[serde(rename = "proto")]
29    Proto,
30}
31#[allow(deprecated)]
32#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
33pub enum StreamCompression {
34    #[serde(rename = "none")]
35    None,
36    #[serde(rename = "gzip")]
37    Gzip,
38}
39#[allow(deprecated)]
40#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
41pub enum MemoryDumpLevelOfDetail {
42    #[serde(rename = "background")]
43    Background,
44    #[serde(rename = "light")]
45    Light,
46    #[serde(rename = "detailed")]
47    Detailed,
48}
49#[allow(deprecated)]
50#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
51pub enum TracingBackend {
52    #[serde(rename = "auto")]
53    Auto,
54    #[serde(rename = "chrome")]
55    Chrome,
56    #[serde(rename = "system")]
57    System,
58}
59#[allow(deprecated)]
60#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
61pub enum StartTransferModeOption {
62    #[serde(rename = "ReportEvents")]
63    ReportEvents,
64    #[serde(rename = "ReturnAsStream")]
65    ReturnAsStream,
66}
67#[allow(deprecated)]
68#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
69pub struct MemoryDumpConfig(pub Option<Json>);
70#[allow(deprecated)]
71#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
72#[builder(setter(into, strip_option))]
73#[serde(rename_all = "camelCase")]
74pub struct TraceConfig {
75    #[builder(default)]
76    #[serde(skip_serializing_if = "Option::is_none")]
77    #[doc = "Controls how the trace buffer stores data. The default is `recordUntilFull`."]
78    pub record_mode: Option<TraceConfigRecordMode>,
79    #[builder(default)]
80    #[serde(skip_serializing_if = "Option::is_none")]
81    #[serde(default)]
82    #[doc = "Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value\n of 200 MB would be used."]
83    pub trace_buffer_size_in_kb: Option<JsFloat>,
84    #[builder(default)]
85    #[serde(skip_serializing_if = "Option::is_none")]
86    #[serde(default)]
87    #[doc = "Turns on JavaScript stack sampling."]
88    pub enable_sampling: Option<bool>,
89    #[builder(default)]
90    #[serde(skip_serializing_if = "Option::is_none")]
91    #[serde(default)]
92    #[doc = "Turns on system tracing."]
93    pub enable_systrace: Option<bool>,
94    #[builder(default)]
95    #[serde(skip_serializing_if = "Option::is_none")]
96    #[serde(default)]
97    #[doc = "Turns on argument filter."]
98    pub enable_argument_filter: Option<bool>,
99    #[builder(default)]
100    #[serde(skip_serializing_if = "Option::is_none")]
101    #[serde(default)]
102    #[doc = "Included category filters."]
103    pub included_categories: Option<Vec<String>>,
104    #[builder(default)]
105    #[serde(skip_serializing_if = "Option::is_none")]
106    #[serde(default)]
107    #[doc = "Excluded category filters."]
108    pub excluded_categories: Option<Vec<String>>,
109    #[builder(default)]
110    #[serde(skip_serializing_if = "Option::is_none")]
111    #[serde(default)]
112    #[doc = "Configuration to synthesize the delays in tracing."]
113    pub synthetic_delays: Option<Vec<String>>,
114    #[builder(default)]
115    #[serde(skip_serializing_if = "Option::is_none")]
116    #[doc = "Configuration for memory dump triggers. Used only when \"memory-infra\" category is enabled."]
117    pub memory_dump_config: Option<MemoryDumpConfig>,
118}
119#[allow(deprecated)]
120#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
121pub struct End(pub Option<Json>);
122#[allow(deprecated)]
123#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
124pub struct GetCategories(pub Option<Json>);
125#[allow(deprecated)]
126#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
127pub struct GetTrackEventDescriptor(pub Option<Json>);
128#[allow(deprecated)]
129#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
130#[builder(setter(into, strip_option))]
131#[serde(rename_all = "camelCase")]
132#[doc = "Record a clock sync marker in the trace."]
133pub struct RecordClockSyncMarker {
134    #[serde(default)]
135    #[doc = "The ID of this clock sync marker"]
136    pub sync_id: String,
137}
138#[allow(deprecated)]
139#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
140#[builder(setter(into, strip_option))]
141#[serde(rename_all = "camelCase")]
142#[doc = "Request a global memory dump."]
143pub struct RequestMemoryDump {
144    #[builder(default)]
145    #[serde(skip_serializing_if = "Option::is_none")]
146    #[serde(default)]
147    #[doc = "Enables more deterministic results by forcing garbage collection"]
148    pub deterministic: Option<bool>,
149    #[builder(default)]
150    #[serde(skip_serializing_if = "Option::is_none")]
151    #[doc = "Specifies level of details in memory dump. Defaults to \"detailed\"."]
152    pub level_of_detail: Option<MemoryDumpLevelOfDetail>,
153}
154#[allow(deprecated)]
155#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
156#[builder(setter(into, strip_option))]
157#[serde(rename_all = "camelCase")]
158#[doc = "Start trace events collection."]
159pub struct Start {
160    #[builder(default)]
161    #[serde(skip_serializing_if = "Option::is_none")]
162    #[serde(default)]
163    #[doc = "Category/tag filter"]
164    #[deprecated]
165    pub categories: Option<String>,
166    #[builder(default)]
167    #[serde(skip_serializing_if = "Option::is_none")]
168    #[serde(default)]
169    #[doc = "Tracing options"]
170    #[deprecated]
171    pub options: Option<String>,
172    #[builder(default)]
173    #[serde(skip_serializing_if = "Option::is_none")]
174    #[serde(default)]
175    #[doc = "If set, the agent will issue bufferUsage events at this interval, specified in milliseconds"]
176    pub buffer_usage_reporting_interval: Option<JsFloat>,
177    #[builder(default)]
178    #[serde(skip_serializing_if = "Option::is_none")]
179    #[doc = "Whether to report trace events as series of dataCollected events or to save trace to a\n stream (defaults to `ReportEvents`)."]
180    pub transfer_mode: Option<StartTransferModeOption>,
181    #[builder(default)]
182    #[serde(skip_serializing_if = "Option::is_none")]
183    #[doc = "Trace data format to use. This only applies when using `ReturnAsStream`\n transfer mode (defaults to `json`)."]
184    pub stream_format: Option<StreamFormat>,
185    #[builder(default)]
186    #[serde(skip_serializing_if = "Option::is_none")]
187    #[doc = "Compression format to use. This only applies when using `ReturnAsStream`\n transfer mode (defaults to `none`)"]
188    pub stream_compression: Option<StreamCompression>,
189    #[builder(default)]
190    #[serde(skip_serializing_if = "Option::is_none")]
191    pub trace_config: Option<TraceConfig>,
192    #[builder(default)]
193    #[serde(skip_serializing_if = "Option::is_none")]
194    #[doc = "Base64-encoded serialized perfetto.protos.TraceConfig protobuf message\n When specified, the parameters `categories`, `options`, `traceConfig`\n are ignored."]
195    pub perfetto_config: Option<Vec<u8>>,
196    #[builder(default)]
197    #[serde(skip_serializing_if = "Option::is_none")]
198    #[doc = "Backend type (defaults to `auto`)"]
199    pub tracing_backend: Option<TracingBackend>,
200}
201#[allow(deprecated)]
202#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
203#[doc = "Stop trace events collection."]
204pub struct EndReturnObject(pub Option<Json>);
205#[allow(deprecated)]
206#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
207#[serde(rename_all = "camelCase")]
208#[doc = "Gets supported tracing categories."]
209pub struct GetCategoriesReturnObject {
210    #[doc = "A list of supported tracing categories."]
211    pub categories: Vec<String>,
212}
213#[allow(deprecated)]
214#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
215#[serde(rename_all = "camelCase")]
216#[doc = "Return a descriptor for all available tracing categories."]
217pub struct GetTrackEventDescriptorReturnObject {
218    #[doc = "Base64-encoded serialized perfetto.protos.TrackEventDescriptor protobuf message."]
219    pub descriptor: String,
220}
221#[allow(deprecated)]
222#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
223#[doc = "Record a clock sync marker in the trace."]
224pub struct RecordClockSyncMarkerReturnObject(pub Option<Json>);
225#[allow(deprecated)]
226#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
227#[serde(rename_all = "camelCase")]
228#[doc = "Request a global memory dump."]
229pub struct RequestMemoryDumpReturnObject {
230    #[serde(default)]
231    #[doc = "GUID of the resulting global memory dump."]
232    pub dump_guid: String,
233    #[serde(default)]
234    #[doc = "True iff the global memory dump succeeded."]
235    pub success: bool,
236}
237#[allow(deprecated)]
238#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
239#[doc = "Start trace events collection."]
240pub struct StartReturnObject(pub Option<Json>);
241#[allow(deprecated)]
242impl Method for End {
243    const NAME: &'static str = "Tracing.end";
244    type ReturnObject = EndReturnObject;
245}
246#[allow(deprecated)]
247impl Method for GetCategories {
248    const NAME: &'static str = "Tracing.getCategories";
249    type ReturnObject = GetCategoriesReturnObject;
250}
251#[allow(deprecated)]
252impl Method for GetTrackEventDescriptor {
253    const NAME: &'static str = "Tracing.getTrackEventDescriptor";
254    type ReturnObject = GetTrackEventDescriptorReturnObject;
255}
256#[allow(deprecated)]
257impl Method for RecordClockSyncMarker {
258    const NAME: &'static str = "Tracing.recordClockSyncMarker";
259    type ReturnObject = RecordClockSyncMarkerReturnObject;
260}
261#[allow(deprecated)]
262impl Method for RequestMemoryDump {
263    const NAME: &'static str = "Tracing.requestMemoryDump";
264    type ReturnObject = RequestMemoryDumpReturnObject;
265}
266#[allow(deprecated)]
267impl Method for Start {
268    const NAME: &'static str = "Tracing.start";
269    type ReturnObject = StartReturnObject;
270}
271#[allow(dead_code)]
272pub mod events {
273    #[allow(unused_imports)]
274    use super::super::types::*;
275    #[allow(unused_imports)]
276    use derive_builder::Builder;
277    #[allow(unused_imports)]
278    use serde::{Deserialize, Serialize};
279    #[allow(unused_imports)]
280    use serde_json::Value as Json;
281    #[allow(deprecated)]
282    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
283    pub struct BufferUsageEvent {
284        pub params: BufferUsageEventParams,
285    }
286    #[allow(deprecated)]
287    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
288    #[serde(rename_all = "camelCase")]
289    pub struct BufferUsageEventParams {
290        #[builder(default)]
291        #[serde(skip_serializing_if = "Option::is_none")]
292        #[serde(default)]
293        #[doc = "A number in range \\[0..1\\] that indicates the used size of event buffer as a fraction of its\n total size."]
294        pub percent_full: Option<JsFloat>,
295        #[builder(default)]
296        #[serde(skip_serializing_if = "Option::is_none")]
297        #[serde(default)]
298        #[doc = "An approximate number of events in the trace log."]
299        pub event_count: Option<JsFloat>,
300        #[builder(default)]
301        #[serde(skip_serializing_if = "Option::is_none")]
302        #[serde(default)]
303        #[doc = "A number in range \\[0..1\\] that indicates the used size of event buffer as a fraction of its\n total size."]
304        pub value: Option<JsFloat>,
305    }
306    #[allow(deprecated)]
307    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
308    pub struct DataCollectedEvent {
309        pub params: DataCollectedEventParams,
310    }
311    #[allow(deprecated)]
312    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
313    #[serde(rename_all = "camelCase")]
314    pub struct DataCollectedEventParams {
315        #[serde(default)]
316        pub value: Vec<Json>,
317    }
318    #[allow(deprecated)]
319    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
320    pub struct TracingCompleteEvent {
321        pub params: TracingCompleteEventParams,
322    }
323    #[allow(deprecated)]
324    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
325    #[serde(rename_all = "camelCase")]
326    pub struct TracingCompleteEventParams {
327        #[serde(default)]
328        #[doc = "Indicates whether some trace data is known to have been lost, e.g. because the trace ring\n buffer wrapped around."]
329        pub data_loss_occurred: bool,
330        #[builder(default)]
331        #[serde(skip_serializing_if = "Option::is_none")]
332        #[doc = "A handle of the stream that holds resulting trace data."]
333        pub stream: Option<super::super::io::StreamHandle>,
334        #[builder(default)]
335        #[serde(skip_serializing_if = "Option::is_none")]
336        #[doc = "Trace data format of returned stream."]
337        pub trace_format: Option<super::StreamFormat>,
338        #[builder(default)]
339        #[serde(skip_serializing_if = "Option::is_none")]
340        #[doc = "Compression format of returned stream."]
341        pub stream_compression: Option<super::StreamCompression>,
342    }
343}