rustenium_bidi_definitions/web_extension/
command_builders.rs1use super::commands::*;
2impl Install {
3 pub fn builder() -> InstallBuilder {
4 <InstallBuilder as Default>::default()
5 }
6}
7#[derive(Default, Clone)]
8pub struct InstallBuilder {
9 extension_data: Option<super::types::ExtensionData>,
10}
11impl InstallBuilder {
12 pub fn extension_data(
13 mut self,
14 extension_data: impl Into<super::types::ExtensionData>,
15 ) -> Self {
16 self.extension_data = Some(extension_data.into());
17 self
18 }
19 pub fn build(self) -> Result<Install, String> {
20 Ok(Install {
21 method: InstallMethod::Install,
22 params: InstallParams {
23 extension_data: self.extension_data.ok_or_else(|| {
24 format!("Field `{}` is mandatory.", std::stringify!(extension_data))
25 })?,
26 },
27 })
28 }
29}
30impl Uninstall {
31 pub fn builder() -> UninstallBuilder {
32 <UninstallBuilder as Default>::default()
33 }
34}
35#[derive(Default, Clone)]
36pub struct UninstallBuilder {
37 extension: Option<super::types::Extension>,
38}
39impl UninstallBuilder {
40 pub fn extension(mut self, extension: impl Into<super::types::Extension>) -> Self {
41 self.extension = Some(extension.into());
42 self
43 }
44 pub fn build(self) -> Result<Uninstall, String> {
45 Ok(Uninstall {
46 method: UninstallMethod::Uninstall,
47 params: UninstallParams {
48 extension: self.extension.ok_or_else(|| {
49 format!("Field `{}` is mandatory.", std::stringify!(extension))
50 })?,
51 },
52 })
53 }
54}