use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ProfileNode {
pub id: u64,
pub callFrame: crate::runtime::CallFrame,
#[serde(skip_serializing_if = "Option::is_none")]
pub hitCount: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub children: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deoptReason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub positionTicks: Option<Vec<PositionTickInfo>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Profile {
pub nodes: Vec<ProfileNode>,
pub startTime: f64,
pub endTime: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub samples: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeDeltas: Option<Vec<i64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PositionTickInfo {
pub line: i64,
pub ticks: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CoverageRange {
pub startOffset: i32,
pub endOffset: i32,
pub count: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FunctionCoverage {
pub functionName: String,
pub ranges: Vec<CoverageRange>,
pub isBlockCoverage: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ScriptCoverage {
pub scriptId: crate::runtime::ScriptId,
pub url: String,
pub functions: Vec<FunctionCoverage>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DisableParams {}
impl DisableParams { pub const METHOD: &'static str = "Profiler.disable"; }
impl crate::CdpCommand for DisableParams {
const METHOD: &'static str = "Profiler.disable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EnableParams {}
impl EnableParams { pub const METHOD: &'static str = "Profiler.enable"; }
impl crate::CdpCommand for EnableParams {
const METHOD: &'static str = "Profiler.enable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBestEffortCoverageReturns {
pub result: Vec<ScriptCoverage>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetBestEffortCoverageParams {}
impl GetBestEffortCoverageParams { pub const METHOD: &'static str = "Profiler.getBestEffortCoverage"; }
impl crate::CdpCommand for GetBestEffortCoverageParams {
const METHOD: &'static str = "Profiler.getBestEffortCoverage";
type Response = GetBestEffortCoverageReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetSamplingIntervalParams {
pub interval: i64,
}
impl SetSamplingIntervalParams { pub const METHOD: &'static str = "Profiler.setSamplingInterval"; }
impl crate::CdpCommand for SetSamplingIntervalParams {
const METHOD: &'static str = "Profiler.setSamplingInterval";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct StartParams {}
impl StartParams { pub const METHOD: &'static str = "Profiler.start"; }
impl crate::CdpCommand for StartParams {
const METHOD: &'static str = "Profiler.start";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StartPreciseCoverageParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub callCount: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowTriggeredUpdates: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StartPreciseCoverageReturns {
pub timestamp: f64,
}
impl StartPreciseCoverageParams { pub const METHOD: &'static str = "Profiler.startPreciseCoverage"; }
impl crate::CdpCommand for StartPreciseCoverageParams {
const METHOD: &'static str = "Profiler.startPreciseCoverage";
type Response = StartPreciseCoverageReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StopReturns {
pub profile: Profile,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct StopParams {}
impl StopParams { pub const METHOD: &'static str = "Profiler.stop"; }
impl crate::CdpCommand for StopParams {
const METHOD: &'static str = "Profiler.stop";
type Response = StopReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct StopPreciseCoverageParams {}
impl StopPreciseCoverageParams { pub const METHOD: &'static str = "Profiler.stopPreciseCoverage"; }
impl crate::CdpCommand for StopPreciseCoverageParams {
const METHOD: &'static str = "Profiler.stopPreciseCoverage";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TakePreciseCoverageReturns {
pub result: Vec<ScriptCoverage>,
pub timestamp: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct TakePreciseCoverageParams {}
impl TakePreciseCoverageParams { pub const METHOD: &'static str = "Profiler.takePreciseCoverage"; }
impl crate::CdpCommand for TakePreciseCoverageParams {
const METHOD: &'static str = "Profiler.takePreciseCoverage";
type Response = TakePreciseCoverageReturns;
}