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> {
mediaType: Cow<'a, str>,
fileExtensions: Vec<Cow<'a, str>>,
}
impl<'a> FileHandlerAccept<'a> {
pub fn builder(mediaType: impl Into<Cow<'a, str>>, fileExtensions: Vec<Cow<'a, str>>) -> FileHandlerAcceptBuilder<'a> {
FileHandlerAcceptBuilder {
mediaType: mediaType.into(),
fileExtensions: fileExtensions,
}
}
pub fn mediaType(&self) -> &str { self.mediaType.as_ref() }
pub fn fileExtensions(&self) -> &[Cow<'a, str>] { &self.fileExtensions }
}
pub struct FileHandlerAcceptBuilder<'a> {
mediaType: Cow<'a, str>,
fileExtensions: Vec<Cow<'a, str>>,
}
impl<'a> FileHandlerAcceptBuilder<'a> {
pub fn build(self) -> FileHandlerAccept<'a> {
FileHandlerAccept {
mediaType: self.mediaType,
fileExtensions: self.fileExtensions,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FileHandler<'a> {
action: Cow<'a, str>,
accepts: Vec<FileHandlerAccept<'a>>,
displayName: Cow<'a, str>,
}
impl<'a> FileHandler<'a> {
pub fn builder(action: impl Into<Cow<'a, str>>, accepts: Vec<FileHandlerAccept<'a>>, displayName: impl Into<Cow<'a, str>>) -> FileHandlerBuilder<'a> {
FileHandlerBuilder {
action: action.into(),
accepts: accepts,
displayName: displayName.into(),
}
}
pub fn action(&self) -> &str { self.action.as_ref() }
pub fn accepts(&self) -> &[FileHandlerAccept<'a>] { &self.accepts }
pub fn displayName(&self) -> &str { self.displayName.as_ref() }
}
pub struct FileHandlerBuilder<'a> {
action: Cow<'a, str>,
accepts: Vec<FileHandlerAccept<'a>>,
displayName: Cow<'a, str>,
}
impl<'a> FileHandlerBuilder<'a> {
pub fn build(self) -> FileHandler<'a> {
FileHandler {
action: self.action,
accepts: self.accepts,
displayName: self.displayName,
}
}
}
#[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> {
manifestId: Cow<'a, str>,
}
impl<'a> GetOsAppStateParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> GetOsAppStateParamsBuilder<'a> {
GetOsAppStateParamsBuilder {
manifestId: manifestId.into(),
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
}
pub struct GetOsAppStateParamsBuilder<'a> {
manifestId: Cow<'a, str>,
}
impl<'a> GetOsAppStateParamsBuilder<'a> {
pub fn build(self) -> GetOsAppStateParams<'a> {
GetOsAppStateParams {
manifestId: self.manifestId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetOsAppStateReturns<'a> {
badgeCount: u64,
fileHandlers: Vec<FileHandler<'a>>,
}
impl<'a> GetOsAppStateReturns<'a> {
pub fn builder(badgeCount: u64, fileHandlers: Vec<FileHandler<'a>>) -> GetOsAppStateReturnsBuilder<'a> {
GetOsAppStateReturnsBuilder {
badgeCount: badgeCount,
fileHandlers: fileHandlers,
}
}
pub fn badgeCount(&self) -> u64 { self.badgeCount }
pub fn fileHandlers(&self) -> &[FileHandler<'a>] { &self.fileHandlers }
}
pub struct GetOsAppStateReturnsBuilder<'a> {
badgeCount: u64,
fileHandlers: Vec<FileHandler<'a>>,
}
impl<'a> GetOsAppStateReturnsBuilder<'a> {
pub fn build(self) -> GetOsAppStateReturns<'a> {
GetOsAppStateReturns {
badgeCount: self.badgeCount,
fileHandlers: self.fileHandlers,
}
}
}
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> {
manifestId: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
installUrlOrBundleUrl: Option<Cow<'a, str>>,
}
impl<'a> InstallParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> InstallParamsBuilder<'a> {
InstallParamsBuilder {
manifestId: manifestId.into(),
installUrlOrBundleUrl: None,
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
pub fn installUrlOrBundleUrl(&self) -> Option<&str> { self.installUrlOrBundleUrl.as_deref() }
}
pub struct InstallParamsBuilder<'a> {
manifestId: Cow<'a, str>,
installUrlOrBundleUrl: Option<Cow<'a, str>>,
}
impl<'a> InstallParamsBuilder<'a> {
pub fn installUrlOrBundleUrl(mut self, installUrlOrBundleUrl: impl Into<Cow<'a, str>>) -> Self { self.installUrlOrBundleUrl = Some(installUrlOrBundleUrl.into()); self }
pub fn build(self) -> InstallParams<'a> {
InstallParams {
manifestId: self.manifestId,
installUrlOrBundleUrl: self.installUrlOrBundleUrl,
}
}
}
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> {
manifestId: Cow<'a, str>,
}
impl<'a> UninstallParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> UninstallParamsBuilder<'a> {
UninstallParamsBuilder {
manifestId: manifestId.into(),
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
}
pub struct UninstallParamsBuilder<'a> {
manifestId: Cow<'a, str>,
}
impl<'a> UninstallParamsBuilder<'a> {
pub fn build(self) -> UninstallParams<'a> {
UninstallParams {
manifestId: self.manifestId,
}
}
}
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> {
manifestId: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
url: Option<Cow<'a, str>>,
}
impl<'a> LaunchParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> LaunchParamsBuilder<'a> {
LaunchParamsBuilder {
manifestId: manifestId.into(),
url: None,
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
pub fn url(&self) -> Option<&str> { self.url.as_deref() }
}
pub struct LaunchParamsBuilder<'a> {
manifestId: 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 {
manifestId: self.manifestId,
url: self.url,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchReturns<'a> {
targetId: crate::target::TargetID<'a>,
}
impl<'a> LaunchReturns<'a> {
pub fn builder(targetId: crate::target::TargetID<'a>) -> LaunchReturnsBuilder<'a> {
LaunchReturnsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &crate::target::TargetID<'a> { &self.targetId }
}
pub struct LaunchReturnsBuilder<'a> {
targetId: crate::target::TargetID<'a>,
}
impl<'a> LaunchReturnsBuilder<'a> {
pub fn build(self) -> LaunchReturns<'a> {
LaunchReturns {
targetId: self.targetId,
}
}
}
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> {
manifestId: Cow<'a, str>,
files: Vec<Cow<'a, str>>,
}
impl<'a> LaunchFilesInAppParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>, files: Vec<Cow<'a, str>>) -> LaunchFilesInAppParamsBuilder<'a> {
LaunchFilesInAppParamsBuilder {
manifestId: manifestId.into(),
files: files,
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
pub fn files(&self) -> &[Cow<'a, str>] { &self.files }
}
pub struct LaunchFilesInAppParamsBuilder<'a> {
manifestId: Cow<'a, str>,
files: Vec<Cow<'a, str>>,
}
impl<'a> LaunchFilesInAppParamsBuilder<'a> {
pub fn build(self) -> LaunchFilesInAppParams<'a> {
LaunchFilesInAppParams {
manifestId: self.manifestId,
files: self.files,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct LaunchFilesInAppReturns<'a> {
targetIds: Vec<crate::target::TargetID<'a>>,
}
impl<'a> LaunchFilesInAppReturns<'a> {
pub fn builder(targetIds: Vec<crate::target::TargetID<'a>>) -> LaunchFilesInAppReturnsBuilder<'a> {
LaunchFilesInAppReturnsBuilder {
targetIds: targetIds,
}
}
pub fn targetIds(&self) -> &[crate::target::TargetID<'a>] { &self.targetIds }
}
pub struct LaunchFilesInAppReturnsBuilder<'a> {
targetIds: Vec<crate::target::TargetID<'a>>,
}
impl<'a> LaunchFilesInAppReturnsBuilder<'a> {
pub fn build(self) -> LaunchFilesInAppReturns<'a> {
LaunchFilesInAppReturns {
targetIds: self.targetIds,
}
}
}
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> {
manifestId: Cow<'a, str>,
}
impl<'a> OpenCurrentPageInAppParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> OpenCurrentPageInAppParamsBuilder<'a> {
OpenCurrentPageInAppParamsBuilder {
manifestId: manifestId.into(),
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
}
pub struct OpenCurrentPageInAppParamsBuilder<'a> {
manifestId: Cow<'a, str>,
}
impl<'a> OpenCurrentPageInAppParamsBuilder<'a> {
pub fn build(self) -> OpenCurrentPageInAppParams<'a> {
OpenCurrentPageInAppParams {
manifestId: self.manifestId,
}
}
}
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> {
manifestId: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
linkCapturing: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
displayMode: Option<DisplayMode>,
}
impl<'a> ChangeAppUserSettingsParams<'a> {
pub fn builder(manifestId: impl Into<Cow<'a, str>>) -> ChangeAppUserSettingsParamsBuilder<'a> {
ChangeAppUserSettingsParamsBuilder {
manifestId: manifestId.into(),
linkCapturing: None,
displayMode: None,
}
}
pub fn manifestId(&self) -> &str { self.manifestId.as_ref() }
pub fn linkCapturing(&self) -> Option<bool> { self.linkCapturing }
pub fn displayMode(&self) -> Option<&DisplayMode> { self.displayMode.as_ref() }
}
pub struct ChangeAppUserSettingsParamsBuilder<'a> {
manifestId: Cow<'a, str>,
linkCapturing: Option<bool>,
displayMode: Option<DisplayMode>,
}
impl<'a> ChangeAppUserSettingsParamsBuilder<'a> {
pub fn linkCapturing(mut self, linkCapturing: bool) -> Self { self.linkCapturing = Some(linkCapturing); self }
pub fn displayMode(mut self, displayMode: DisplayMode) -> Self { self.displayMode = Some(displayMode); self }
pub fn build(self) -> ChangeAppUserSettingsParams<'a> {
ChangeAppUserSettingsParams {
manifestId: self.manifestId,
linkCapturing: self.linkCapturing,
displayMode: self.displayMode,
}
}
}
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;
}