use serde::{Serialize, Deserialize};
#[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>,
}
#[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>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InsertTextParams {
pub text: String,
}
#[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>,
}
#[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>,
}
#[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>,
}
#[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>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetIgnoreInputEventsParams {
pub ignore: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetInterceptDragsParams {
pub enabled: bool,
}
#[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>,
}
#[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>,
}
#[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>,
}