rustenium_cdp_definitions/js_protocol/profiler/
commands.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
3pub struct DisableParams {}
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum DisableMethod {
6 #[serde(rename = "Profiler.disable")]
7 Disable,
8}
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Disable {
11 pub method: DisableMethod,
12 pub params: DisableParams,
13}
14impl Disable {
15 pub const IDENTIFIER: &'static str = "Profiler.disable";
16 pub fn identifier(&self) -> &'static str {
17 Self::IDENTIFIER
18 }
19}
20impl crate::CommandResult for Disable {
21 type Result = super::results::DisableResult;
22}
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct EnableParams {}
25#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
26pub enum EnableMethod {
27 #[serde(rename = "Profiler.enable")]
28 Enable,
29}
30#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
31pub struct Enable {
32 pub method: EnableMethod,
33 pub params: EnableParams,
34}
35impl Enable {
36 pub const IDENTIFIER: &'static str = "Profiler.enable";
37 pub fn identifier(&self) -> &'static str {
38 Self::IDENTIFIER
39 }
40}
41impl crate::CommandResult for Enable {
42 type Result = super::results::EnableResult;
43}
44#[doc = "Collect coverage data for the current isolate. The coverage data may be incomplete due to\ngarbage collection.\n[getBestEffortCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-getBestEffortCoverage)"]
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
46pub struct GetBestEffortCoverageParams {}
47#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
48pub enum GetBestEffortCoverageMethod {
49 #[serde(rename = "Profiler.getBestEffortCoverage")]
50 GetBestEffortCoverage,
51}
52#[doc = "Collect coverage data for the current isolate. The coverage data may be incomplete due to\ngarbage collection.\n[getBestEffortCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-getBestEffortCoverage)"]
53#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
54pub struct GetBestEffortCoverage {
55 pub method: GetBestEffortCoverageMethod,
56 pub params: GetBestEffortCoverageParams,
57}
58impl GetBestEffortCoverage {
59 pub const IDENTIFIER: &'static str = "Profiler.getBestEffortCoverage";
60 pub fn identifier(&self) -> &'static str {
61 Self::IDENTIFIER
62 }
63}
64impl crate::CommandResult for GetBestEffortCoverage {
65 type Result = super::results::GetBestEffortCoverageResult;
66}
67#[doc = "Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.\n[setSamplingInterval](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-setSamplingInterval)"]
68#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
69pub struct SetSamplingIntervalParams {
70 #[doc = "New sampling interval in microseconds."]
71 #[serde(rename = "interval")]
72 pub interval: i64,
73}
74impl SetSamplingIntervalParams {
75 pub fn new(interval: impl Into<i64>) -> Self {
76 Self {
77 interval: interval.into(),
78 }
79 }
80}
81#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
82pub enum SetSamplingIntervalMethod {
83 #[serde(rename = "Profiler.setSamplingInterval")]
84 SetSamplingInterval,
85}
86#[doc = "Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.\n[setSamplingInterval](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-setSamplingInterval)"]
87#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
88pub struct SetSamplingInterval {
89 pub method: SetSamplingIntervalMethod,
90 pub params: SetSamplingIntervalParams,
91}
92impl SetSamplingInterval {
93 pub const IDENTIFIER: &'static str = "Profiler.setSamplingInterval";
94 pub fn identifier(&self) -> &'static str {
95 Self::IDENTIFIER
96 }
97}
98impl crate::CommandResult for SetSamplingInterval {
99 type Result = super::results::SetSamplingIntervalResult;
100}
101#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
102pub struct StartParams {}
103#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
104pub enum StartMethod {
105 #[serde(rename = "Profiler.start")]
106 Start,
107}
108#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
109pub struct Start {
110 pub method: StartMethod,
111 pub params: StartParams,
112}
113impl Start {
114 pub const IDENTIFIER: &'static str = "Profiler.start";
115 pub fn identifier(&self) -> &'static str {
116 Self::IDENTIFIER
117 }
118}
119impl crate::CommandResult for Start {
120 type Result = super::results::StartResult;
121}
122#[doc = "Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code\ncoverage may be incomplete. Enabling prevents running optimized code and resets execution\ncounters.\n[startPreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-startPreciseCoverage)"]
123#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
124pub struct StartPreciseCoverageParams {
125 #[doc = "Collect accurate call counts beyond simple 'covered' or 'not covered'."]
126 #[serde(rename = "callCount")]
127 #[serde(skip_serializing_if = "Option::is_none")]
128 #[serde(default)]
129 pub call_count: Option<bool>,
130 #[doc = "Collect block-based coverage."]
131 #[serde(rename = "detailed")]
132 #[serde(skip_serializing_if = "Option::is_none")]
133 #[serde(default)]
134 pub detailed: Option<bool>,
135 #[doc = "Allow the backend to send updates on its own initiative"]
136 #[serde(rename = "allowTriggeredUpdates")]
137 #[serde(skip_serializing_if = "Option::is_none")]
138 #[serde(default)]
139 pub allow_triggered_updates: Option<bool>,
140}
141#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
142pub enum StartPreciseCoverageMethod {
143 #[serde(rename = "Profiler.startPreciseCoverage")]
144 StartPreciseCoverage,
145}
146#[doc = "Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code\ncoverage may be incomplete. Enabling prevents running optimized code and resets execution\ncounters.\n[startPreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-startPreciseCoverage)"]
147#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
148pub struct StartPreciseCoverage {
149 pub method: StartPreciseCoverageMethod,
150 pub params: StartPreciseCoverageParams,
151}
152impl StartPreciseCoverage {
153 pub const IDENTIFIER: &'static str = "Profiler.startPreciseCoverage";
154 pub fn identifier(&self) -> &'static str {
155 Self::IDENTIFIER
156 }
157}
158impl crate::CommandResult for StartPreciseCoverage {
159 type Result = super::results::StartPreciseCoverageResult;
160}
161#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
162pub struct StopParams {}
163#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
164pub enum StopMethod {
165 #[serde(rename = "Profiler.stop")]
166 Stop,
167}
168#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
169pub struct Stop {
170 pub method: StopMethod,
171 pub params: StopParams,
172}
173impl Stop {
174 pub const IDENTIFIER: &'static str = "Profiler.stop";
175 pub fn identifier(&self) -> &'static str {
176 Self::IDENTIFIER
177 }
178}
179impl crate::CommandResult for Stop {
180 type Result = super::results::StopResult;
181}
182#[doc = "Disable precise code coverage. Disabling releases unnecessary execution count records and allows\nexecuting optimized code.\n[stopPreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-stopPreciseCoverage)"]
183#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
184pub struct StopPreciseCoverageParams {}
185#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
186pub enum StopPreciseCoverageMethod {
187 #[serde(rename = "Profiler.stopPreciseCoverage")]
188 StopPreciseCoverage,
189}
190#[doc = "Disable precise code coverage. Disabling releases unnecessary execution count records and allows\nexecuting optimized code.\n[stopPreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-stopPreciseCoverage)"]
191#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
192pub struct StopPreciseCoverage {
193 pub method: StopPreciseCoverageMethod,
194 pub params: StopPreciseCoverageParams,
195}
196impl StopPreciseCoverage {
197 pub const IDENTIFIER: &'static str = "Profiler.stopPreciseCoverage";
198 pub fn identifier(&self) -> &'static str {
199 Self::IDENTIFIER
200 }
201}
202impl crate::CommandResult for StopPreciseCoverage {
203 type Result = super::results::StopPreciseCoverageResult;
204}
205#[doc = "Collect coverage data for the current isolate, and resets execution counters. Precise code\ncoverage needs to have started.\n[takePreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-takePreciseCoverage)"]
206#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
207pub struct TakePreciseCoverageParams {}
208#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
209pub enum TakePreciseCoverageMethod {
210 #[serde(rename = "Profiler.takePreciseCoverage")]
211 TakePreciseCoverage,
212}
213#[doc = "Collect coverage data for the current isolate, and resets execution counters. Precise code\ncoverage needs to have started.\n[takePreciseCoverage](https://chromedevtools.github.io/devtools-protocol/tot/Profiler/#method-takePreciseCoverage)"]
214#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
215pub struct TakePreciseCoverage {
216 pub method: TakePreciseCoverageMethod,
217 pub params: TakePreciseCoverageParams,
218}
219impl TakePreciseCoverage {
220 pub const IDENTIFIER: &'static str = "Profiler.takePreciseCoverage";
221 pub fn identifier(&self) -> &'static str {
222 Self::IDENTIFIER
223 }
224}
225impl crate::CommandResult for TakePreciseCoverage {
226 type Result = super::results::TakePreciseCoverageResult;
227}
228group_enum ! (ProfilerCommands { Disable (Disable) , Enable (Enable) , GetBestEffortCoverage (GetBestEffortCoverage) , SetSamplingInterval (SetSamplingInterval) , Start (Start) , StartPreciseCoverage (StartPreciseCoverage) , Stop (Stop) , StopPreciseCoverage (StopPreciseCoverage) , TakePreciseCoverage (TakePreciseCoverage) } + identifiable);