Skip to main content

rustenium_cdp_definitions/js_protocol/profiler/
commands.rs

1use 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);