use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
pub type MemoryDumpConfig = serde_json::Map<String, JsonValue>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TraceConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub recordMode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub traceBufferSizeInKb: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enableSampling: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enableSystrace: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enableArgumentFilter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub includedCategories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub excludedCategories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub syntheticDelays: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub memoryDumpConfig: Option<MemoryDumpConfig>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum StreamFormat {
#[default]
Json,
Proto,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum StreamCompression {
#[default]
None,
Gzip,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum MemoryDumpLevelOfDetail {
#[default]
Background,
Light,
Detailed,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum TracingBackend {
#[default]
Auto,
Chrome,
System,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EndParams {}
impl EndParams { pub const METHOD: &'static str = "Tracing.end"; }
impl crate::CdpCommand for EndParams {
const METHOD: &'static str = "Tracing.end";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetCategoriesReturns {
pub categories: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetCategoriesParams {}
impl GetCategoriesParams { pub const METHOD: &'static str = "Tracing.getCategories"; }
impl crate::CdpCommand for GetCategoriesParams {
const METHOD: &'static str = "Tracing.getCategories";
type Response = GetCategoriesReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTrackEventDescriptorReturns {
pub descriptor: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetTrackEventDescriptorParams {}
impl GetTrackEventDescriptorParams { pub const METHOD: &'static str = "Tracing.getTrackEventDescriptor"; }
impl crate::CdpCommand for GetTrackEventDescriptorParams {
const METHOD: &'static str = "Tracing.getTrackEventDescriptor";
type Response = GetTrackEventDescriptorReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RecordClockSyncMarkerParams {
pub syncId: String,
}
impl RecordClockSyncMarkerParams { pub const METHOD: &'static str = "Tracing.recordClockSyncMarker"; }
impl crate::CdpCommand for RecordClockSyncMarkerParams {
const METHOD: &'static str = "Tracing.recordClockSyncMarker";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestMemoryDumpParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub deterministic: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub levelOfDetail: Option<MemoryDumpLevelOfDetail>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestMemoryDumpReturns {
pub dumpGuid: String,
pub success: bool,
}
impl RequestMemoryDumpParams { pub const METHOD: &'static str = "Tracing.requestMemoryDump"; }
impl crate::CdpCommand for RequestMemoryDumpParams {
const METHOD: &'static str = "Tracing.requestMemoryDump";
type Response = RequestMemoryDumpReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StartParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub categories: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bufferUsageReportingInterval: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transferMode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub streamFormat: Option<StreamFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub streamCompression: Option<StreamCompression>,
#[serde(skip_serializing_if = "Option::is_none")]
pub traceConfig: Option<TraceConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub perfettoConfig: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tracingBackend: Option<TracingBackend>,
}
impl StartParams { pub const METHOD: &'static str = "Tracing.start"; }
impl crate::CdpCommand for StartParams {
const METHOD: &'static str = "Tracing.start";
type Response = crate::EmptyReturns;
}