Skip to main content

rustenium_bidi_definitions/input/
commands.rs

1use 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);