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)]
#[serde(rename_all = "camelCase")]
pub struct GetCategoriesReturns {
pub categories: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTrackEventDescriptorReturns {
pub descriptor: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RecordClockSyncMarkerParams {
pub syncId: String,
}
#[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,
}
#[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>,
}