use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TouchPoint {
pub x: f64,
pub y: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub radiusX: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub radiusY: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rotationAngle: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tangentialPressure: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiltX: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiltY: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub twist: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum GestureSourceType {
#[default]
Default,
Touch,
Mouse,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum MouseButton {
#[default]
None,
Left,
Middle,
Right,
Back,
Forward,
}
pub type TimeSinceEpoch = f64;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DragDataItem {
pub mimeType: String,
pub data: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub baseURL: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DragData {
pub items: Vec<DragDataItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Vec<String>>,
pub dragOperationsMask: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DispatchDragEventParams {
#[serde(rename = "type")]
pub type_: String,
pub x: f64,
pub y: f64,
pub data: DragData,
#[serde(skip_serializing_if = "Option::is_none")]
pub modifiers: Option<i64>,
}
impl DispatchDragEventParams { pub const METHOD: &'static str = "Input.dispatchDragEvent"; }
impl crate::CdpCommand for DispatchDragEventParams {
const METHOD: &'static str = "Input.dispatchDragEvent";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DispatchKeyEventParams {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub modifiers: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<TimeSinceEpoch>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unmodifiedText: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub keyIdentifier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub windowsVirtualKeyCode: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nativeVirtualKeyCode: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub autoRepeat: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub isKeypad: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub isSystemKey: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub commands: Option<Vec<String>>,
}
impl DispatchKeyEventParams { pub const METHOD: &'static str = "Input.dispatchKeyEvent"; }
impl crate::CdpCommand for DispatchKeyEventParams {
const METHOD: &'static str = "Input.dispatchKeyEvent";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InsertTextParams {
pub text: String,
}
impl InsertTextParams { pub const METHOD: &'static str = "Input.insertText"; }
impl crate::CdpCommand for InsertTextParams {
const METHOD: &'static str = "Input.insertText";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ImeSetCompositionParams {
pub text: String,
pub selectionStart: i64,
pub selectionEnd: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub replacementStart: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub replacementEnd: Option<i64>,
}
impl ImeSetCompositionParams { pub const METHOD: &'static str = "Input.imeSetComposition"; }
impl crate::CdpCommand for ImeSetCompositionParams {
const METHOD: &'static str = "Input.imeSetComposition";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DispatchMouseEventParams {
#[serde(rename = "type")]
pub type_: String,
pub x: f64,
pub y: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub modifiers: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<TimeSinceEpoch>,
#[serde(skip_serializing_if = "Option::is_none")]
pub button: Option<MouseButton>,
#[serde(skip_serializing_if = "Option::is_none")]
pub buttons: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub clickCount: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tangentialPressure: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiltX: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tiltY: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub twist: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deltaX: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deltaY: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pointerType: Option<String>,
}
impl DispatchMouseEventParams { pub const METHOD: &'static str = "Input.dispatchMouseEvent"; }
impl crate::CdpCommand for DispatchMouseEventParams {
const METHOD: &'static str = "Input.dispatchMouseEvent";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DispatchTouchEventParams {
#[serde(rename = "type")]
pub type_: String,
pub touchPoints: Vec<TouchPoint>,
#[serde(skip_serializing_if = "Option::is_none")]
pub modifiers: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<TimeSinceEpoch>,
}
impl DispatchTouchEventParams { pub const METHOD: &'static str = "Input.dispatchTouchEvent"; }
impl crate::CdpCommand for DispatchTouchEventParams {
const METHOD: &'static str = "Input.dispatchTouchEvent";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CancelDraggingParams {}
impl CancelDraggingParams { pub const METHOD: &'static str = "Input.cancelDragging"; }
impl crate::CdpCommand for CancelDraggingParams {
const METHOD: &'static str = "Input.cancelDragging";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct EmulateTouchFromMouseEventParams {
#[serde(rename = "type")]
pub type_: String,
pub x: i32,
pub y: i32,
pub button: MouseButton,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<TimeSinceEpoch>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deltaX: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deltaY: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub modifiers: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub clickCount: Option<u64>,
}
impl EmulateTouchFromMouseEventParams { pub const METHOD: &'static str = "Input.emulateTouchFromMouseEvent"; }
impl crate::CdpCommand for EmulateTouchFromMouseEventParams {
const METHOD: &'static str = "Input.emulateTouchFromMouseEvent";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetIgnoreInputEventsParams {
pub ignore: bool,
}
impl SetIgnoreInputEventsParams { pub const METHOD: &'static str = "Input.setIgnoreInputEvents"; }
impl crate::CdpCommand for SetIgnoreInputEventsParams {
const METHOD: &'static str = "Input.setIgnoreInputEvents";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetInterceptDragsParams {
pub enabled: bool,
}
impl SetInterceptDragsParams { pub const METHOD: &'static str = "Input.setInterceptDrags"; }
impl crate::CdpCommand for SetInterceptDragsParams {
const METHOD: &'static str = "Input.setInterceptDrags";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SynthesizePinchGestureParams {
pub x: f64,
pub y: f64,
pub scaleFactor: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub relativeSpeed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gestureSourceType: Option<GestureSourceType>,
}
impl SynthesizePinchGestureParams { pub const METHOD: &'static str = "Input.synthesizePinchGesture"; }
impl crate::CdpCommand for SynthesizePinchGestureParams {
const METHOD: &'static str = "Input.synthesizePinchGesture";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SynthesizeScrollGestureParams {
pub x: f64,
pub y: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub xDistance: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub yDistance: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub xOverscroll: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub yOverscroll: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preventFling: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub speed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gestureSourceType: Option<GestureSourceType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub repeatCount: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub repeatDelayMs: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub interactionMarkerName: Option<String>,
}
impl SynthesizeScrollGestureParams { pub const METHOD: &'static str = "Input.synthesizeScrollGesture"; }
impl crate::CdpCommand for SynthesizeScrollGestureParams {
const METHOD: &'static str = "Input.synthesizeScrollGesture";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SynthesizeTapGestureParams {
pub x: f64,
pub y: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tapCount: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gestureSourceType: Option<GestureSourceType>,
}
impl SynthesizeTapGestureParams { pub const METHOD: &'static str = "Input.synthesizeTapGesture"; }
impl crate::CdpCommand for SynthesizeTapGestureParams {
const METHOD: &'static str = "Input.synthesizeTapGesture";
type Response = crate::EmptyReturns;
}