use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum StorageArea {
#[default]
#[serde(rename = "session")]
Session,
#[serde(rename = "local")]
Local,
#[serde(rename = "sync")]
Sync,
#[serde(rename = "managed")]
Managed,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExtensionInfo<'a> {
id: Cow<'a, str>,
name: Cow<'a, str>,
version: Cow<'a, str>,
path: Cow<'a, str>,
enabled: bool,
}
impl<'a> ExtensionInfo<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, name: impl Into<Cow<'a, str>>, version: impl Into<Cow<'a, str>>, path: impl Into<Cow<'a, str>>, enabled: bool) -> ExtensionInfoBuilder<'a> {
ExtensionInfoBuilder {
id: id.into(),
name: name.into(),
version: version.into(),
path: path.into(),
enabled: enabled,
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn name(&self) -> &str { self.name.as_ref() }
pub fn version(&self) -> &str { self.version.as_ref() }
pub fn path(&self) -> &str { self.path.as_ref() }
pub fn enabled(&self) -> bool { self.enabled }
}
pub struct ExtensionInfoBuilder<'a> {
id: Cow<'a, str>,
name: Cow<'a, str>,
version: Cow<'a, str>,
path: Cow<'a, str>,
enabled: bool,
}
impl<'a> ExtensionInfoBuilder<'a> {
pub fn build(self) -> ExtensionInfo<'a> {
ExtensionInfo {
id: self.id,
name: self.name,
version: self.version,
path: self.path,
enabled: self.enabled,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TriggerActionParams<'a> {
id: Cow<'a, str>,
#[serde(rename = "targetId")]
target_id: Cow<'a, str>,
}
impl<'a> TriggerActionParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, target_id: impl Into<Cow<'a, str>>) -> TriggerActionParamsBuilder<'a> {
TriggerActionParamsBuilder {
id: id.into(),
target_id: target_id.into(),
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn target_id(&self) -> &str { self.target_id.as_ref() }
}
pub struct TriggerActionParamsBuilder<'a> {
id: Cow<'a, str>,
target_id: Cow<'a, str>,
}
impl<'a> TriggerActionParamsBuilder<'a> {
pub fn build(self) -> TriggerActionParams<'a> {
TriggerActionParams {
id: self.id,
target_id: self.target_id,
}
}
}
impl<'a> TriggerActionParams<'a> { pub const METHOD: &'static str = "Extensions.triggerAction"; }
impl<'a> crate::CdpCommand<'a> for TriggerActionParams<'a> {
const METHOD: &'static str = "Extensions.triggerAction";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LoadUnpackedParams<'a> {
path: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "enableInIncognito")]
enable_in_incognito: Option<bool>,
}
impl<'a> LoadUnpackedParams<'a> {
pub fn builder(path: impl Into<Cow<'a, str>>) -> LoadUnpackedParamsBuilder<'a> {
LoadUnpackedParamsBuilder {
path: path.into(),
enable_in_incognito: None,
}
}
pub fn path(&self) -> &str { self.path.as_ref() }
pub fn enable_in_incognito(&self) -> Option<bool> { self.enable_in_incognito }
}
pub struct LoadUnpackedParamsBuilder<'a> {
path: Cow<'a, str>,
enable_in_incognito: Option<bool>,
}
impl<'a> LoadUnpackedParamsBuilder<'a> {
pub fn enable_in_incognito(mut self, enable_in_incognito: bool) -> Self { self.enable_in_incognito = Some(enable_in_incognito); self }
pub fn build(self) -> LoadUnpackedParams<'a> {
LoadUnpackedParams {
path: self.path,
enable_in_incognito: self.enable_in_incognito,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LoadUnpackedReturns<'a> {
id: Cow<'a, str>,
}
impl<'a> LoadUnpackedReturns<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>) -> LoadUnpackedReturnsBuilder<'a> {
LoadUnpackedReturnsBuilder {
id: id.into(),
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
}
pub struct LoadUnpackedReturnsBuilder<'a> {
id: Cow<'a, str>,
}
impl<'a> LoadUnpackedReturnsBuilder<'a> {
pub fn build(self) -> LoadUnpackedReturns<'a> {
LoadUnpackedReturns {
id: self.id,
}
}
}
impl<'a> LoadUnpackedParams<'a> { pub const METHOD: &'static str = "Extensions.loadUnpacked"; }
impl<'a> crate::CdpCommand<'a> for LoadUnpackedParams<'a> {
const METHOD: &'static str = "Extensions.loadUnpacked";
type Response = LoadUnpackedReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetExtensionsReturns<'a> {
extensions: Vec<ExtensionInfo<'a>>,
}
impl<'a> GetExtensionsReturns<'a> {
pub fn builder(extensions: Vec<ExtensionInfo<'a>>) -> GetExtensionsReturnsBuilder<'a> {
GetExtensionsReturnsBuilder {
extensions: extensions,
}
}
pub fn extensions(&self) -> &[ExtensionInfo<'a>] { &self.extensions }
}
pub struct GetExtensionsReturnsBuilder<'a> {
extensions: Vec<ExtensionInfo<'a>>,
}
impl<'a> GetExtensionsReturnsBuilder<'a> {
pub fn build(self) -> GetExtensionsReturns<'a> {
GetExtensionsReturns {
extensions: self.extensions,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetExtensionsParams {}
impl GetExtensionsParams { pub const METHOD: &'static str = "Extensions.getExtensions"; }
impl<'a> crate::CdpCommand<'a> for GetExtensionsParams {
const METHOD: &'static str = "Extensions.getExtensions";
type Response = GetExtensionsReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct UninstallParams<'a> {
id: Cow<'a, str>,
}
impl<'a> UninstallParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>) -> UninstallParamsBuilder<'a> {
UninstallParamsBuilder {
id: id.into(),
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
}
pub struct UninstallParamsBuilder<'a> {
id: Cow<'a, str>,
}
impl<'a> UninstallParamsBuilder<'a> {
pub fn build(self) -> UninstallParams<'a> {
UninstallParams {
id: self.id,
}
}
}
impl<'a> UninstallParams<'a> { pub const METHOD: &'static str = "Extensions.uninstall"; }
impl<'a> crate::CdpCommand<'a> for UninstallParams<'a> {
const METHOD: &'static str = "Extensions.uninstall";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetStorageItemsParams<'a> {
id: Cow<'a, str>,
#[serde(rename = "storageArea")]
storage_area: StorageArea,
#[serde(skip_serializing_if = "Option::is_none")]
keys: Option<Vec<Cow<'a, str>>>,
}
impl<'a> GetStorageItemsParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, storage_area: impl Into<StorageArea>) -> GetStorageItemsParamsBuilder<'a> {
GetStorageItemsParamsBuilder {
id: id.into(),
storage_area: storage_area.into(),
keys: None,
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn storage_area(&self) -> &StorageArea { &self.storage_area }
pub fn keys(&self) -> Option<&[Cow<'a, str>]> { self.keys.as_deref() }
}
pub struct GetStorageItemsParamsBuilder<'a> {
id: Cow<'a, str>,
storage_area: StorageArea,
keys: Option<Vec<Cow<'a, str>>>,
}
impl<'a> GetStorageItemsParamsBuilder<'a> {
pub fn keys(mut self, keys: Vec<Cow<'a, str>>) -> Self { self.keys = Some(keys); self }
pub fn build(self) -> GetStorageItemsParams<'a> {
GetStorageItemsParams {
id: self.id,
storage_area: self.storage_area,
keys: self.keys,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetStorageItemsReturns {
data: serde_json::Map<String, JsonValue>,
}
impl GetStorageItemsReturns {
pub fn builder(data: serde_json::Map<String, JsonValue>) -> GetStorageItemsReturnsBuilder {
GetStorageItemsReturnsBuilder {
data: data,
}
}
pub fn data(&self) -> &serde_json::Map<String, JsonValue> { &self.data }
}
pub struct GetStorageItemsReturnsBuilder {
data: serde_json::Map<String, JsonValue>,
}
impl GetStorageItemsReturnsBuilder {
pub fn build(self) -> GetStorageItemsReturns {
GetStorageItemsReturns {
data: self.data,
}
}
}
impl<'a> GetStorageItemsParams<'a> { pub const METHOD: &'static str = "Extensions.getStorageItems"; }
impl<'a> crate::CdpCommand<'a> for GetStorageItemsParams<'a> {
const METHOD: &'static str = "Extensions.getStorageItems";
type Response = GetStorageItemsReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RemoveStorageItemsParams<'a> {
id: Cow<'a, str>,
#[serde(rename = "storageArea")]
storage_area: StorageArea,
keys: Vec<Cow<'a, str>>,
}
impl<'a> RemoveStorageItemsParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, storage_area: impl Into<StorageArea>, keys: Vec<Cow<'a, str>>) -> RemoveStorageItemsParamsBuilder<'a> {
RemoveStorageItemsParamsBuilder {
id: id.into(),
storage_area: storage_area.into(),
keys: keys,
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn storage_area(&self) -> &StorageArea { &self.storage_area }
pub fn keys(&self) -> &[Cow<'a, str>] { &self.keys }
}
pub struct RemoveStorageItemsParamsBuilder<'a> {
id: Cow<'a, str>,
storage_area: StorageArea,
keys: Vec<Cow<'a, str>>,
}
impl<'a> RemoveStorageItemsParamsBuilder<'a> {
pub fn build(self) -> RemoveStorageItemsParams<'a> {
RemoveStorageItemsParams {
id: self.id,
storage_area: self.storage_area,
keys: self.keys,
}
}
}
impl<'a> RemoveStorageItemsParams<'a> { pub const METHOD: &'static str = "Extensions.removeStorageItems"; }
impl<'a> crate::CdpCommand<'a> for RemoveStorageItemsParams<'a> {
const METHOD: &'static str = "Extensions.removeStorageItems";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClearStorageItemsParams<'a> {
id: Cow<'a, str>,
#[serde(rename = "storageArea")]
storage_area: StorageArea,
}
impl<'a> ClearStorageItemsParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, storage_area: impl Into<StorageArea>) -> ClearStorageItemsParamsBuilder<'a> {
ClearStorageItemsParamsBuilder {
id: id.into(),
storage_area: storage_area.into(),
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn storage_area(&self) -> &StorageArea { &self.storage_area }
}
pub struct ClearStorageItemsParamsBuilder<'a> {
id: Cow<'a, str>,
storage_area: StorageArea,
}
impl<'a> ClearStorageItemsParamsBuilder<'a> {
pub fn build(self) -> ClearStorageItemsParams<'a> {
ClearStorageItemsParams {
id: self.id,
storage_area: self.storage_area,
}
}
}
impl<'a> ClearStorageItemsParams<'a> { pub const METHOD: &'static str = "Extensions.clearStorageItems"; }
impl<'a> crate::CdpCommand<'a> for ClearStorageItemsParams<'a> {
const METHOD: &'static str = "Extensions.clearStorageItems";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetStorageItemsParams<'a> {
id: Cow<'a, str>,
#[serde(rename = "storageArea")]
storage_area: StorageArea,
values: serde_json::Map<String, JsonValue>,
}
impl<'a> SetStorageItemsParams<'a> {
pub fn builder(id: impl Into<Cow<'a, str>>, storage_area: impl Into<StorageArea>, values: serde_json::Map<String, JsonValue>) -> SetStorageItemsParamsBuilder<'a> {
SetStorageItemsParamsBuilder {
id: id.into(),
storage_area: storage_area.into(),
values: values,
}
}
pub fn id(&self) -> &str { self.id.as_ref() }
pub fn storage_area(&self) -> &StorageArea { &self.storage_area }
pub fn values(&self) -> &serde_json::Map<String, JsonValue> { &self.values }
}
pub struct SetStorageItemsParamsBuilder<'a> {
id: Cow<'a, str>,
storage_area: StorageArea,
values: serde_json::Map<String, JsonValue>,
}
impl<'a> SetStorageItemsParamsBuilder<'a> {
pub fn build(self) -> SetStorageItemsParams<'a> {
SetStorageItemsParams {
id: self.id,
storage_area: self.storage_area,
values: self.values,
}
}
}
impl<'a> SetStorageItemsParams<'a> { pub const METHOD: &'static str = "Extensions.setStorageItems"; }
impl<'a> crate::CdpCommand<'a> for SetStorageItemsParams<'a> {
const METHOD: &'static str = "Extensions.setStorageItems";
type Response = crate::EmptyReturns;
}