use serde::{Deserialize, Serialize};
pub type NodeId = i32;
pub type BackendNodeId = i32;
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BackendNode {
pub node_type: i32,
pub node_name: String,
pub backend_node_id: BackendNodeId,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetFileInputFilesParams {
pub files: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub node_id: Option<NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backend_node_id: Option<BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDocumentParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub depth: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pierce: Option<bool>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Node {
pub node_id: NodeId,
pub node_type: i32,
pub node_name: String,
pub local_name: String,
pub node_value: String,
pub child_node_count: Option<i32>,
pub children: Option<Vec<Node>>,
pub attributes: Option<Vec<String>>,
pub document_url: Option<String>,
pub base_url: Option<String>,
pub content_document: Option<Box<Node>>,
pub shadow_roots: Option<Vec<Node>>,
pub frame_id: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct GetDocumentResult {
pub root: Node,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct QuerySelectorParams {
pub node_id: NodeId,
pub selector: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QuerySelectorResult {
pub node_id: NodeId,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ResolveNodeParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub node_id: Option<NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backend_node_id: Option<BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_group: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_context_id: Option<i64>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ResolveNodeResult {
pub object: crate::protocol::runtime::RemoteObject,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DescribeNodeParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub node_id: Option<NodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backend_node_id: Option<BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub depth: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pierce: Option<bool>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct DescribeNodeResult {
pub node: NodeDescription,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NodeDescription {
pub node_id: NodeId,
pub backend_node_id: BackendNodeId,
pub node_type: i32,
pub node_name: String,
pub local_name: String,
pub node_value: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub child_node_count: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub children: Option<Vec<Node>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub frame_id: Option<String>,
}