Skip to main content

rustenium_bidi_definitions/web_extension/
command_builders.rs

1use 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}