use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileHandlerAccept<'a> {
#[serde(rename = "mediaType")]
media_type: Cow<'a, str>,
#[serde(rename = "fileExtensions")]
file_extensions: Vec<Cow<'a, str>>,
}
impl<'a> FileHandlerAccept<'a> {
pub fn builder(media_type: impl Into<Cow<'a, str>>, file_extensions: Vec<Cow<'a, str>>) -> FileHandlerAcceptBuilder<'a> {
FileHandlerAcceptBuilder {
media_type: media_type.into(),
file_extensions: file_extensions,
}
}
pub fn media_type(&self) -> &str { self.media_type.as_ref() }
pub fn file_extensions(&self) -> &[Cow<'a, str>] { &self.file_extensions }
}
pub struct FileHandlerAcceptBuilder<'a> {
media_type: Cow<'a, str>,
file_extensions: Vec<Cow<'a, str>>,
}
impl<'a> FileHandlerAcceptBuilder<'a> {
pub fn build(self) -> FileHandlerAccept<'a> {
FileHandlerAccept {
media_type: self.media_type,
file_extensions: self.file_extensions,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileHandler<'a> {
action: Cow<'a, str>,
accepts: Vec<FileHandlerAccept<'a>>,
#[serde(rename = "displayName")]
display_name: Cow<'a, str>,
}
impl<'a> FileHandler<'a> {
pub fn builder(action: impl Into<Cow<'a, str>>, accepts: Vec<FileHandlerAccept<'a>>, display_name: impl Into<Cow<'a, str>>) -> FileHandlerBuilder<'a> {
FileHandlerBuilder {
action: action.into(),
accepts: accepts,
display_name: display_name.into(),
}
}
pub fn action(&self) -> &str { self.action.as_ref() }
pub fn accepts(&self) -> &[FileHandlerAccept<'a>] { &self.accepts }
pub fn display_name(&self) -> &str { self.display_name.as_ref() }
}
pub struct FileHandlerBuilder<'a> {
action: Cow<'a, str>,
accepts: Vec<FileHandlerAccept<'a>>,
display_name: Cow<'a, str>,
}
impl<'a> FileHandlerBuilder<'a> {
pub fn build(self) -> FileHandler<'a> {
FileHandler {
action: self.action,
accepts: self.accepts,
display_name: self.display_name,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum DisplayMode {
#[default]
#[serde(rename = "standalone")]
Standalone,
#[serde(rename = "browser")]
Browser,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetOsAppStateParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
}
impl<'a> GetOsAppStateParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> GetOsAppStateParamsBuilder<'a> {
GetOsAppStateParamsBuilder {
manifest_id: manifest_id.into(),
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
}
pub struct GetOsAppStateParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
}
impl<'a> GetOsAppStateParamsBuilder<'a> {
pub fn build(self) -> GetOsAppStateParams<'a> {
GetOsAppStateParams {
manifest_id: self.manifest_id,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetOsAppStateReturns<'a> {
#[serde(rename = "badgeCount")]
badge_count: u64,
#[serde(rename = "fileHandlers")]
file_handlers: Vec<FileHandler<'a>>,
}
impl<'a> GetOsAppStateReturns<'a> {
pub fn builder(badge_count: u64, file_handlers: Vec<FileHandler<'a>>) -> GetOsAppStateReturnsBuilder<'a> {
GetOsAppStateReturnsBuilder {
badge_count: badge_count,
file_handlers: file_handlers,
}
}
pub fn badge_count(&self) -> u64 { self.badge_count }
pub fn file_handlers(&self) -> &[FileHandler<'a>] { &self.file_handlers }
}
pub struct GetOsAppStateReturnsBuilder<'a> {
badge_count: u64,
file_handlers: Vec<FileHandler<'a>>,
}
impl<'a> GetOsAppStateReturnsBuilder<'a> {
pub fn build(self) -> GetOsAppStateReturns<'a> {
GetOsAppStateReturns {
badge_count: self.badge_count,
file_handlers: self.file_handlers,
}
}
}
impl<'a> GetOsAppStateParams<'a> { pub const METHOD: &'static str = "PWA.getOsAppState"; }
impl<'a> crate::CdpCommand<'a> for GetOsAppStateParams<'a> {
const METHOD: &'static str = "PWA.getOsAppState";
type Response = GetOsAppStateReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InstallParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "installUrlOrBundleUrl")]
install_url_or_bundle_url: Option<Cow<'a, str>>,
}
impl<'a> InstallParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> InstallParamsBuilder<'a> {
InstallParamsBuilder {
manifest_id: manifest_id.into(),
install_url_or_bundle_url: None,
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
pub fn install_url_or_bundle_url(&self) -> Option<&str> { self.install_url_or_bundle_url.as_deref() }
}
pub struct InstallParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
install_url_or_bundle_url: Option<Cow<'a, str>>,
}
impl<'a> InstallParamsBuilder<'a> {
pub fn install_url_or_bundle_url(mut self, install_url_or_bundle_url: impl Into<Cow<'a, str>>) -> Self { self.install_url_or_bundle_url = Some(install_url_or_bundle_url.into()); self }
pub fn build(self) -> InstallParams<'a> {
InstallParams {
manifest_id: self.manifest_id,
install_url_or_bundle_url: self.install_url_or_bundle_url,
}
}
}
impl<'a> InstallParams<'a> { pub const METHOD: &'static str = "PWA.install"; }
impl<'a> crate::CdpCommand<'a> for InstallParams<'a> {
const METHOD: &'static str = "PWA.install";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct UninstallParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
}
impl<'a> UninstallParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> UninstallParamsBuilder<'a> {
UninstallParamsBuilder {
manifest_id: manifest_id.into(),
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
}
pub struct UninstallParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
}
impl<'a> UninstallParamsBuilder<'a> {
pub fn build(self) -> UninstallParams<'a> {
UninstallParams {
manifest_id: self.manifest_id,
}
}
}
impl<'a> UninstallParams<'a> { pub const METHOD: &'static str = "PWA.uninstall"; }
impl<'a> crate::CdpCommand<'a> for UninstallParams<'a> {
const METHOD: &'static str = "PWA.uninstall";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
url: Option<Cow<'a, str>>,
}
impl<'a> LaunchParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> LaunchParamsBuilder<'a> {
LaunchParamsBuilder {
manifest_id: manifest_id.into(),
url: None,
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
pub fn url(&self) -> Option<&str> { self.url.as_deref() }
}
pub struct LaunchParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
url: Option<Cow<'a, str>>,
}
impl<'a> LaunchParamsBuilder<'a> {
pub fn url(mut self, url: impl Into<Cow<'a, str>>) -> Self { self.url = Some(url.into()); self }
pub fn build(self) -> LaunchParams<'a> {
LaunchParams {
manifest_id: self.manifest_id,
url: self.url,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchReturns<'a> {
#[serde(rename = "targetId")]
target_id: crate::target::TargetID<'a>,
}
impl<'a> LaunchReturns<'a> {
pub fn builder(target_id: crate::target::TargetID<'a>) -> LaunchReturnsBuilder<'a> {
LaunchReturnsBuilder {
target_id: target_id,
}
}
pub fn target_id(&self) -> &crate::target::TargetID<'a> { &self.target_id }
}
pub struct LaunchReturnsBuilder<'a> {
target_id: crate::target::TargetID<'a>,
}
impl<'a> LaunchReturnsBuilder<'a> {
pub fn build(self) -> LaunchReturns<'a> {
LaunchReturns {
target_id: self.target_id,
}
}
}
impl<'a> LaunchParams<'a> { pub const METHOD: &'static str = "PWA.launch"; }
impl<'a> crate::CdpCommand<'a> for LaunchParams<'a> {
const METHOD: &'static str = "PWA.launch";
type Response = LaunchReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchFilesInAppParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
files: Vec<Cow<'a, str>>,
}
impl<'a> LaunchFilesInAppParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>, files: Vec<Cow<'a, str>>) -> LaunchFilesInAppParamsBuilder<'a> {
LaunchFilesInAppParamsBuilder {
manifest_id: manifest_id.into(),
files: files,
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
pub fn files(&self) -> &[Cow<'a, str>] { &self.files }
}
pub struct LaunchFilesInAppParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
files: Vec<Cow<'a, str>>,
}
impl<'a> LaunchFilesInAppParamsBuilder<'a> {
pub fn build(self) -> LaunchFilesInAppParams<'a> {
LaunchFilesInAppParams {
manifest_id: self.manifest_id,
files: self.files,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchFilesInAppReturns<'a> {
#[serde(rename = "targetIds")]
target_ids: Vec<crate::target::TargetID<'a>>,
}
impl<'a> LaunchFilesInAppReturns<'a> {
pub fn builder(target_ids: Vec<crate::target::TargetID<'a>>) -> LaunchFilesInAppReturnsBuilder<'a> {
LaunchFilesInAppReturnsBuilder {
target_ids: target_ids,
}
}
pub fn target_ids(&self) -> &[crate::target::TargetID<'a>] { &self.target_ids }
}
pub struct LaunchFilesInAppReturnsBuilder<'a> {
target_ids: Vec<crate::target::TargetID<'a>>,
}
impl<'a> LaunchFilesInAppReturnsBuilder<'a> {
pub fn build(self) -> LaunchFilesInAppReturns<'a> {
LaunchFilesInAppReturns {
target_ids: self.target_ids,
}
}
}
impl<'a> LaunchFilesInAppParams<'a> { pub const METHOD: &'static str = "PWA.launchFilesInApp"; }
impl<'a> crate::CdpCommand<'a> for LaunchFilesInAppParams<'a> {
const METHOD: &'static str = "PWA.launchFilesInApp";
type Response = LaunchFilesInAppReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenCurrentPageInAppParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
}
impl<'a> OpenCurrentPageInAppParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> OpenCurrentPageInAppParamsBuilder<'a> {
OpenCurrentPageInAppParamsBuilder {
manifest_id: manifest_id.into(),
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
}
pub struct OpenCurrentPageInAppParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
}
impl<'a> OpenCurrentPageInAppParamsBuilder<'a> {
pub fn build(self) -> OpenCurrentPageInAppParams<'a> {
OpenCurrentPageInAppParams {
manifest_id: self.manifest_id,
}
}
}
impl<'a> OpenCurrentPageInAppParams<'a> { pub const METHOD: &'static str = "PWA.openCurrentPageInApp"; }
impl<'a> crate::CdpCommand<'a> for OpenCurrentPageInAppParams<'a> {
const METHOD: &'static str = "PWA.openCurrentPageInApp";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ChangeAppUserSettingsParams<'a> {
#[serde(rename = "manifestId")]
manifest_id: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "linkCapturing")]
link_capturing: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "displayMode")]
display_mode: Option<DisplayMode>,
}
impl<'a> ChangeAppUserSettingsParams<'a> {
pub fn builder(manifest_id: impl Into<Cow<'a, str>>) -> ChangeAppUserSettingsParamsBuilder<'a> {
ChangeAppUserSettingsParamsBuilder {
manifest_id: manifest_id.into(),
link_capturing: None,
display_mode: None,
}
}
pub fn manifest_id(&self) -> &str { self.manifest_id.as_ref() }
pub fn link_capturing(&self) -> Option<bool> { self.link_capturing }
pub fn display_mode(&self) -> Option<&DisplayMode> { self.display_mode.as_ref() }
}
pub struct ChangeAppUserSettingsParamsBuilder<'a> {
manifest_id: Cow<'a, str>,
link_capturing: Option<bool>,
display_mode: Option<DisplayMode>,
}
impl<'a> ChangeAppUserSettingsParamsBuilder<'a> {
pub fn link_capturing(mut self, link_capturing: bool) -> Self { self.link_capturing = Some(link_capturing); self }
pub fn display_mode(mut self, display_mode: impl Into<DisplayMode>) -> Self { self.display_mode = Some(display_mode.into()); self }
pub fn build(self) -> ChangeAppUserSettingsParams<'a> {
ChangeAppUserSettingsParams {
manifest_id: self.manifest_id,
link_capturing: self.link_capturing,
display_mode: self.display_mode,
}
}
}
impl<'a> ChangeAppUserSettingsParams<'a> { pub const METHOD: &'static str = "PWA.changeAppUserSettings"; }
impl<'a> crate::CdpCommand<'a> for ChangeAppUserSettingsParams<'a> {
const METHOD: &'static str = "PWA.changeAppUserSettings";
type Response = crate::EmptyReturns;
}