browser_protocol/tracing/
mod.rs1use serde::{Serialize, Deserialize};
2use serde_json::Value as JsonValue;
3
4pub type MemoryDumpConfig = serde_json::Map<String, JsonValue>;
7
8
9#[derive(Debug, Clone, Serialize, Deserialize, Default)]
10#[serde(rename_all = "camelCase")]
11pub struct TraceConfig {
12 #[serde(skip_serializing_if = "Option::is_none")]
15 pub recordMode: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
20 pub traceBufferSizeInKb: Option<f64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
24 pub enableSampling: Option<bool>,
25 #[serde(skip_serializing_if = "Option::is_none")]
28 pub enableSystrace: Option<bool>,
29 #[serde(skip_serializing_if = "Option::is_none")]
32 pub enableArgumentFilter: Option<bool>,
33 #[serde(skip_serializing_if = "Option::is_none")]
36 pub includedCategories: Option<Vec<String>>,
37 #[serde(skip_serializing_if = "Option::is_none")]
40 pub excludedCategories: Option<Vec<String>>,
41 #[serde(skip_serializing_if = "Option::is_none")]
44 pub syntheticDelays: Option<Vec<String>>,
45 #[serde(skip_serializing_if = "Option::is_none")]
48 pub memoryDumpConfig: Option<MemoryDumpConfig>,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
55pub enum StreamFormat {
56 #[default]
57 Json,
58 Proto,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
64pub enum StreamCompression {
65 #[default]
66 None,
67 Gzip,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
75pub enum MemoryDumpLevelOfDetail {
76 #[default]
77 Background,
78 Light,
79 Detailed,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
89pub enum TracingBackend {
90 #[default]
91 Auto,
92 Chrome,
93 System,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize, Default)]
99#[serde(rename_all = "camelCase")]
100pub struct GetCategoriesReturns {
101 pub categories: Vec<String>,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize, Default)]
109#[serde(rename_all = "camelCase")]
110pub struct GetTrackEventDescriptorReturns {
111 pub descriptor: String,
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize, Default)]
119#[serde(rename_all = "camelCase")]
120pub struct RecordClockSyncMarkerParams {
121 pub syncId: String,
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize, Default)]
129#[serde(rename_all = "camelCase")]
130pub struct RequestMemoryDumpParams {
131 #[serde(skip_serializing_if = "Option::is_none")]
134 pub deterministic: Option<bool>,
135 #[serde(skip_serializing_if = "Option::is_none")]
138 pub levelOfDetail: Option<MemoryDumpLevelOfDetail>,
139}
140
141#[derive(Debug, Clone, Serialize, Deserialize, Default)]
144#[serde(rename_all = "camelCase")]
145pub struct RequestMemoryDumpReturns {
146 pub dumpGuid: String,
149 pub success: bool,
152}
153
154#[derive(Debug, Clone, Serialize, Deserialize, Default)]
157#[serde(rename_all = "camelCase")]
158pub struct StartParams {
159 #[serde(skip_serializing_if = "Option::is_none")]
162 pub categories: Option<String>,
163 #[serde(skip_serializing_if = "Option::is_none")]
166 pub options: Option<String>,
167 #[serde(skip_serializing_if = "Option::is_none")]
170 pub bufferUsageReportingInterval: Option<f64>,
171 #[serde(skip_serializing_if = "Option::is_none")]
175 pub transferMode: Option<String>,
176 #[serde(skip_serializing_if = "Option::is_none")]
180 pub streamFormat: Option<StreamFormat>,
181 #[serde(skip_serializing_if = "Option::is_none")]
185 pub streamCompression: Option<StreamCompression>,
186
187 #[serde(skip_serializing_if = "Option::is_none")]
188 pub traceConfig: Option<TraceConfig>,
189 #[serde(skip_serializing_if = "Option::is_none")]
194 pub perfettoConfig: Option<String>,
195 #[serde(skip_serializing_if = "Option::is_none")]
198 pub tracingBackend: Option<TracingBackend>,
199}