Skip to main content

rustenium_bidi_definitions/session/
commands.rs

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