rustenium_bidi_definitions/input/
commands.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
3pub struct PerformActionsParams {
4 #[serde(rename = "context")]
5 pub context: crate::browsing_context::types::BrowsingContext,
6 #[serde(rename = "actions")]
7 #[serde(skip_serializing_if = "Vec::is_empty")]
8 pub actions: Vec<super::types::SourceActions>,
9}
10impl PerformActionsParams {
11 pub fn new(
12 context: impl Into<crate::browsing_context::types::BrowsingContext>,
13 actions: Vec<super::types::SourceActions>,
14 ) -> Self {
15 Self {
16 context: context.into(),
17 actions,
18 }
19 }
20}
21#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
22pub enum PerformActionsMethod {
23 #[serde(rename = "input.performActions")]
24 PerformActions,
25}
26#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
27pub struct PerformActions {
28 pub method: PerformActionsMethod,
29 pub params: PerformActionsParams,
30}
31impl PerformActions {
32 pub const IDENTIFIER: &'static str = "input.performActions";
33 pub const DOMAIN_DIRECTION: &'static str = "remote";
34 pub fn identifier(&self) -> &'static str {
35 Self::IDENTIFIER
36 }
37}
38impl crate::CommandResult for PerformActions {
39 type Result = super::results::PerformActionsResult;
40}
41#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct ReleaseActionsParams {
43 #[serde(rename = "context")]
44 pub context: crate::browsing_context::types::BrowsingContext,
45}
46impl ReleaseActionsParams {
47 pub fn new(context: impl Into<crate::browsing_context::types::BrowsingContext>) -> Self {
48 Self {
49 context: context.into(),
50 }
51 }
52}
53#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
54pub enum ReleaseActionsMethod {
55 #[serde(rename = "input.releaseActions")]
56 ReleaseActions,
57}
58#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
59pub struct ReleaseActions {
60 pub method: ReleaseActionsMethod,
61 pub params: ReleaseActionsParams,
62}
63impl ReleaseActions {
64 pub const IDENTIFIER: &'static str = "input.releaseActions";
65 pub const DOMAIN_DIRECTION: &'static str = "remote";
66 pub fn identifier(&self) -> &'static str {
67 Self::IDENTIFIER
68 }
69}
70impl crate::CommandResult for ReleaseActions {
71 type Result = super::results::ReleaseActionsResult;
72}
73#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
74pub struct SetFilesParams {
75 #[serde(rename = "context")]
76 pub context: crate::browsing_context::types::BrowsingContext,
77 #[serde(rename = "element")]
78 pub element: crate::script::types::SharedReference,
79 #[serde(rename = "files")]
80 #[serde(skip_serializing_if = "Vec::is_empty")]
81 pub files: Vec<String>,
82}
83impl SetFilesParams {
84 pub fn new(
85 context: impl Into<crate::browsing_context::types::BrowsingContext>,
86 element: impl Into<crate::script::types::SharedReference>,
87 files: Vec<String>,
88 ) -> Self {
89 Self {
90 context: context.into(),
91 element: element.into(),
92 files,
93 }
94 }
95}
96#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
97pub enum SetFilesMethod {
98 #[serde(rename = "input.setFiles")]
99 SetFiles,
100}
101#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
102pub struct SetFiles {
103 pub method: SetFilesMethod,
104 pub params: SetFilesParams,
105}
106impl SetFiles {
107 pub const IDENTIFIER: &'static str = "input.setFiles";
108 pub const DOMAIN_DIRECTION: &'static str = "remote";
109 pub fn identifier(&self) -> &'static str {
110 Self::IDENTIFIER
111 }
112}
113impl crate::CommandResult for SetFiles {
114 type Result = super::results::SetFilesResult;
115}
116group_enum ! (InputCommand { PerformActions (PerformActions) , ReleaseActions (ReleaseActions) , SetFiles (SetFiles) } + identifiable);