Skip to main content

rustenium_cdp_definitions/browser_protocol/fed_cm/
command_builders.rs

1use super::commands::*;
2impl Enable {
3    pub fn builder() -> EnableBuilder {
4        <EnableBuilder as Default>::default()
5    }
6}
7#[derive(Default, Clone)]
8pub struct EnableBuilder {
9    disable_rejection_delay: Option<bool>,
10}
11impl EnableBuilder {
12    pub fn disable_rejection_delay(mut self, disable_rejection_delay: impl Into<bool>) -> Self {
13        self.disable_rejection_delay = Some(disable_rejection_delay.into());
14        self
15    }
16    pub fn build(self) -> Enable {
17        Enable {
18            method: EnableMethod::Enable,
19            params: EnableParams {
20                disable_rejection_delay: self.disable_rejection_delay,
21            },
22        }
23    }
24}
25#[derive(Debug, Clone, Default)]
26pub struct DisableBuilder;
27impl DisableBuilder {
28    pub fn new() -> Self {
29        Self
30    }
31    pub fn build(self) -> Disable {
32        Disable {
33            method: DisableMethod::Disable,
34            params: DisableParams {},
35        }
36    }
37}
38impl Disable {
39    pub fn builder() -> DisableBuilder {
40        DisableBuilder
41    }
42}
43impl SelectAccount {
44    pub fn builder() -> SelectAccountBuilder {
45        <SelectAccountBuilder as Default>::default()
46    }
47}
48#[derive(Default, Clone)]
49pub struct SelectAccountBuilder {
50    dialog_id: Option<String>,
51    account_index: Option<i64>,
52}
53impl SelectAccountBuilder {
54    pub fn dialog_id(mut self, dialog_id: impl Into<String>) -> Self {
55        self.dialog_id = Some(dialog_id.into());
56        self
57    }
58    pub fn account_index(mut self, account_index: impl Into<i64>) -> Self {
59        self.account_index = Some(account_index.into());
60        self
61    }
62    pub fn build(self) -> Result<SelectAccount, String> {
63        Ok(SelectAccount {
64            method: SelectAccountMethod::SelectAccount,
65            params: SelectAccountParams {
66                dialog_id: self.dialog_id.ok_or_else(|| {
67                    format!("Field `{}` is mandatory.", std::stringify!(dialog_id))
68                })?,
69                account_index: self.account_index.ok_or_else(|| {
70                    format!("Field `{}` is mandatory.", std::stringify!(account_index))
71                })?,
72            },
73        })
74    }
75}
76impl ClickDialogButton {
77    pub fn builder() -> ClickDialogButtonBuilder {
78        <ClickDialogButtonBuilder as Default>::default()
79    }
80}
81#[derive(Default, Clone)]
82pub struct ClickDialogButtonBuilder {
83    dialog_id: Option<String>,
84    dialog_button: Option<super::types::DialogButton>,
85}
86impl ClickDialogButtonBuilder {
87    pub fn dialog_id(mut self, dialog_id: impl Into<String>) -> Self {
88        self.dialog_id = Some(dialog_id.into());
89        self
90    }
91    pub fn dialog_button(mut self, dialog_button: impl Into<super::types::DialogButton>) -> Self {
92        self.dialog_button = Some(dialog_button.into());
93        self
94    }
95    pub fn build(self) -> Result<ClickDialogButton, String> {
96        Ok(ClickDialogButton {
97            method: ClickDialogButtonMethod::ClickDialogButton,
98            params: ClickDialogButtonParams {
99                dialog_id: self.dialog_id.ok_or_else(|| {
100                    format!("Field `{}` is mandatory.", std::stringify!(dialog_id))
101                })?,
102                dialog_button: self.dialog_button.ok_or_else(|| {
103                    format!("Field `{}` is mandatory.", std::stringify!(dialog_button))
104                })?,
105            },
106        })
107    }
108}
109impl OpenUrl {
110    pub fn builder() -> OpenUrlBuilder {
111        <OpenUrlBuilder as Default>::default()
112    }
113}
114#[derive(Default, Clone)]
115pub struct OpenUrlBuilder {
116    dialog_id: Option<String>,
117    account_index: Option<i64>,
118    account_url_type: Option<super::types::AccountUrlType>,
119}
120impl OpenUrlBuilder {
121    pub fn dialog_id(mut self, dialog_id: impl Into<String>) -> Self {
122        self.dialog_id = Some(dialog_id.into());
123        self
124    }
125    pub fn account_index(mut self, account_index: impl Into<i64>) -> Self {
126        self.account_index = Some(account_index.into());
127        self
128    }
129    pub fn account_url_type(
130        mut self,
131        account_url_type: impl Into<super::types::AccountUrlType>,
132    ) -> Self {
133        self.account_url_type = Some(account_url_type.into());
134        self
135    }
136    pub fn build(self) -> Result<OpenUrl, String> {
137        Ok(OpenUrl {
138            method: OpenUrlMethod::OpenUrl,
139            params: OpenUrlParams {
140                dialog_id: self.dialog_id.ok_or_else(|| {
141                    format!("Field `{}` is mandatory.", std::stringify!(dialog_id))
142                })?,
143                account_index: self.account_index.ok_or_else(|| {
144                    format!("Field `{}` is mandatory.", std::stringify!(account_index))
145                })?,
146                account_url_type: self.account_url_type.ok_or_else(|| {
147                    format!(
148                        "Field `{}` is mandatory.",
149                        std::stringify!(account_url_type)
150                    )
151                })?,
152            },
153        })
154    }
155}
156impl DismissDialog {
157    pub fn builder() -> DismissDialogBuilder {
158        <DismissDialogBuilder as Default>::default()
159    }
160}
161#[derive(Default, Clone)]
162pub struct DismissDialogBuilder {
163    dialog_id: Option<String>,
164    trigger_cooldown: Option<bool>,
165}
166impl DismissDialogBuilder {
167    pub fn dialog_id(mut self, dialog_id: impl Into<String>) -> Self {
168        self.dialog_id = Some(dialog_id.into());
169        self
170    }
171    pub fn trigger_cooldown(mut self, trigger_cooldown: impl Into<bool>) -> Self {
172        self.trigger_cooldown = Some(trigger_cooldown.into());
173        self
174    }
175    pub fn build(self) -> Result<DismissDialog, String> {
176        Ok(DismissDialog {
177            method: DismissDialogMethod::DismissDialog,
178            params: DismissDialogParams {
179                dialog_id: self.dialog_id.ok_or_else(|| {
180                    format!("Field `{}` is mandatory.", std::stringify!(dialog_id))
181                })?,
182                trigger_cooldown: self.trigger_cooldown,
183            },
184        })
185    }
186}
187#[derive(Debug, Clone, Default)]
188pub struct ResetCooldownBuilder;
189impl ResetCooldownBuilder {
190    pub fn new() -> Self {
191        Self
192    }
193    pub fn build(self) -> ResetCooldown {
194        ResetCooldown {
195            method: ResetCooldownMethod::ResetCooldown,
196            params: ResetCooldownParams {},
197        }
198    }
199}
200impl ResetCooldown {
201    pub fn builder() -> ResetCooldownBuilder {
202        ResetCooldownBuilder
203    }
204}