1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct CdpRequest {
6 pub id: u64,
8 pub method: String,
10 #[serde(default = "empty_object")]
12 pub params: serde_json::Value,
13 #[serde(rename = "sessionId", skip_serializing_if = "Option::is_none")]
15 pub session_id: Option<String>,
16}
17
18fn empty_object() -> serde_json::Value {
19 serde_json::Value::Object(serde_json::Map::new())
20}
21
22#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
24pub struct CdpResponseError {
25 pub code: i64,
27 pub message: String,
29}
30
31#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
33pub struct CdpResponse {
34 pub id: u64,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub result: Option<serde_json::Value>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub error: Option<CdpResponseError>,
42 #[serde(rename = "sessionId", skip_serializing_if = "Option::is_none")]
44 pub session_id: Option<String>,
45}
46
47pub type CdpValue = serde_json::Value;
49
50pub type ResponseBody = String;