rustenium_bidi_definitions/session/
commands.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
3pub struct StatusParams {}
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum StatusMethod {
6 #[serde(rename = "session.status")]
7 Status,
8}
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Status {
11 pub method: StatusMethod,
12 pub params: StatusParams,
13}
14impl Status {
15 pub const IDENTIFIER: &'static str = "session.status";
16 pub const DOMAIN_DIRECTION: &'static str = "remote";
17 pub fn identifier(&self) -> &'static str {
18 Self::IDENTIFIER
19 }
20}
21impl crate::CommandResult for Status {
22 type Result = super::results::StatusResult;
23}
24#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub struct NewParams {
26 #[serde(rename = "capabilities")]
27 pub capabilities: super::types::CapabilitiesRequest,
28}
29impl NewParams {
30 pub fn new(capabilities: impl Into<super::types::CapabilitiesRequest>) -> Self {
31 Self {
32 capabilities: capabilities.into(),
33 }
34 }
35}
36#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
37pub enum NewMethod {
38 #[serde(rename = "session.new")]
39 New,
40}
41#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct New {
43 pub method: NewMethod,
44 pub params: NewParams,
45}
46impl New {
47 pub const IDENTIFIER: &'static str = "session.new";
48 pub const DOMAIN_DIRECTION: &'static str = "remote";
49 pub fn identifier(&self) -> &'static str {
50 Self::IDENTIFIER
51 }
52}
53impl crate::CommandResult for New {
54 type Result = super::results::NewResult;
55}
56#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
57pub struct EndParams {}
58#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
59pub enum EndMethod {
60 #[serde(rename = "session.end")]
61 End,
62}
63#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
64pub struct End {
65 pub method: EndMethod,
66 pub params: EndParams,
67}
68impl End {
69 pub const IDENTIFIER: &'static str = "session.end";
70 pub const DOMAIN_DIRECTION: &'static str = "remote";
71 pub fn identifier(&self) -> &'static str {
72 Self::IDENTIFIER
73 }
74}
75impl crate::CommandResult for End {
76 type Result = super::results::EndResult;
77}
78#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
79pub struct SubscribeParams {
80 #[serde(rename = "events")]
81 #[serde(skip_serializing_if = "Vec::is_empty")]
82 pub events: Vec<String>,
83 #[serde(rename = "contexts")]
84 #[serde(skip_serializing_if = "Option::is_none")]
85 #[serde(default)]
86 pub contexts: Option<Vec<crate::browsing_context::types::BrowsingContext>>,
87 #[serde(rename = "userContexts")]
88 #[serde(skip_serializing_if = "Option::is_none")]
89 #[serde(default)]
90 pub user_contexts: Option<Vec<crate::browser::types::UserContext>>,
91}
92impl SubscribeParams {
93 pub fn new(events: Vec<String>) -> Self {
94 Self {
95 events,
96 contexts: None,
97 user_contexts: None,
98 }
99 }
100}
101#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
102pub enum SubscribeMethod {
103 #[serde(rename = "session.subscribe")]
104 Subscribe,
105}
106#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
107pub struct Subscribe {
108 pub method: SubscribeMethod,
109 pub params: SubscribeParams,
110}
111impl Subscribe {
112 pub const IDENTIFIER: &'static str = "session.subscribe";
113 pub const DOMAIN_DIRECTION: &'static str = "remote";
114 pub fn identifier(&self) -> &'static str {
115 Self::IDENTIFIER
116 }
117}
118impl crate::CommandResult for Subscribe {
119 type Result = super::results::SubscribeResult;
120}
121#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
122pub struct UnsubscribeParams {
123 #[serde(flatten)]
124 #[serde(default)]
125 pub unsubscribe_parameters: super::types::UnsubscribeParameters,
126}
127impl UnsubscribeParams {
128 pub fn new(unsubscribe_parameters: impl Into<super::types::UnsubscribeParameters>) -> Self {
129 Self {
130 unsubscribe_parameters: unsubscribe_parameters.into(),
131 }
132 }
133}
134#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
135pub enum UnsubscribeMethod {
136 #[serde(rename = "session.unsubscribe")]
137 Unsubscribe,
138}
139#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
140pub struct Unsubscribe {
141 pub method: UnsubscribeMethod,
142 pub params: UnsubscribeParams,
143}
144impl Unsubscribe {
145 pub const IDENTIFIER: &'static str = "session.unsubscribe";
146 pub const DOMAIN_DIRECTION: &'static str = "remote";
147 pub fn identifier(&self) -> &'static str {
148 Self::IDENTIFIER
149 }
150}
151impl crate::CommandResult for Unsubscribe {
152 type Result = super::results::UnsubscribeResult;
153}
154group_enum ! (SessionCommand { Status (Status) , New (New) , End (End) , Subscribe (Subscribe) , Unsubscribe (Unsubscribe) } + identifiable);