Skip to main content

rustenium_bidi_definitions/web_extension/
commands.rs

1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
3pub struct InstallParams {
4    #[serde(rename = "extensionData")]
5    pub extension_data: super::types::ExtensionData,
6}
7impl InstallParams {
8    pub fn new(extension_data: impl Into<super::types::ExtensionData>) -> Self {
9        Self {
10            extension_data: extension_data.into(),
11        }
12    }
13}
14#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
15pub enum InstallMethod {
16    #[serde(rename = "webExtension.install")]
17    Install,
18}
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20pub struct Install {
21    pub method: InstallMethod,
22    pub params: InstallParams,
23}
24impl Install {
25    pub const IDENTIFIER: &'static str = "webExtension.install";
26    pub const DOMAIN_DIRECTION: &'static str = "remote";
27    pub fn identifier(&self) -> &'static str {
28        Self::IDENTIFIER
29    }
30}
31impl crate::CommandResult for Install {
32    type Result = super::results::InstallResult;
33}
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
35pub struct UninstallParams {
36    #[serde(rename = "extension")]
37    pub extension: super::types::Extension,
38}
39impl UninstallParams {
40    pub fn new(extension: impl Into<super::types::Extension>) -> Self {
41        Self {
42            extension: extension.into(),
43        }
44    }
45}
46#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
47pub enum UninstallMethod {
48    #[serde(rename = "webExtension.uninstall")]
49    Uninstall,
50}
51#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
52pub struct Uninstall {
53    pub method: UninstallMethod,
54    pub params: UninstallParams,
55}
56impl Uninstall {
57    pub const IDENTIFIER: &'static str = "webExtension.uninstall";
58    pub const DOMAIN_DIRECTION: &'static str = "remote";
59    pub fn identifier(&self) -> &'static str {
60        Self::IDENTIFIER
61    }
62}
63impl crate::CommandResult for Uninstall {
64    type Result = super::results::UninstallResult;
65}
66group_enum ! (WebExtensionCommand { Install (Install) , Uninstall (Uninstall) } + identifiable);