use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
pub type TargetID<'a> = Cow<'a, str>;
pub type SessionID<'a> = Cow<'a, str>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TargetInfo<'a> {
targetId: TargetID<'a>,
#[serde(rename = "type")]
type_: Cow<'a, str>,
title: Cow<'a, str>,
url: Cow<'a, str>,
attached: bool,
#[serde(skip_serializing_if = "Option::is_none")]
openerId: Option<TargetID<'a>>,
canAccessOpener: bool,
#[serde(skip_serializing_if = "Option::is_none")]
openerFrameId: Option<crate::page::FrameId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
parentFrameId: Option<crate::page::FrameId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
browserContextId: Option<crate::browser::BrowserContextID<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
subtype: Option<Cow<'a, str>>,
}
impl<'a> TargetInfo<'a> {
pub fn builder(targetId: TargetID<'a>, type_: impl Into<Cow<'a, str>>, title: impl Into<Cow<'a, str>>, url: impl Into<Cow<'a, str>>, attached: bool, canAccessOpener: bool) -> TargetInfoBuilder<'a> {
TargetInfoBuilder {
targetId: targetId,
type_: type_.into(),
title: title.into(),
url: url.into(),
attached: attached,
openerId: None,
canAccessOpener: canAccessOpener,
openerFrameId: None,
parentFrameId: None,
browserContextId: None,
subtype: None,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
pub fn type_(&self) -> &str { self.type_.as_ref() }
pub fn title(&self) -> &str { self.title.as_ref() }
pub fn url(&self) -> &str { self.url.as_ref() }
pub fn attached(&self) -> bool { self.attached }
pub fn openerId(&self) -> Option<&TargetID<'a>> { self.openerId.as_ref() }
pub fn canAccessOpener(&self) -> bool { self.canAccessOpener }
pub fn openerFrameId(&self) -> Option<&crate::page::FrameId<'a>> { self.openerFrameId.as_ref() }
pub fn parentFrameId(&self) -> Option<&crate::page::FrameId<'a>> { self.parentFrameId.as_ref() }
pub fn browserContextId(&self) -> Option<&crate::browser::BrowserContextID<'a>> { self.browserContextId.as_ref() }
pub fn subtype(&self) -> Option<&str> { self.subtype.as_deref() }
}
pub struct TargetInfoBuilder<'a> {
targetId: TargetID<'a>,
type_: Cow<'a, str>,
title: Cow<'a, str>,
url: Cow<'a, str>,
attached: bool,
openerId: Option<TargetID<'a>>,
canAccessOpener: bool,
openerFrameId: Option<crate::page::FrameId<'a>>,
parentFrameId: Option<crate::page::FrameId<'a>>,
browserContextId: Option<crate::browser::BrowserContextID<'a>>,
subtype: Option<Cow<'a, str>>,
}
impl<'a> TargetInfoBuilder<'a> {
pub fn openerId(mut self, openerId: TargetID<'a>) -> Self { self.openerId = Some(openerId); self }
pub fn openerFrameId(mut self, openerFrameId: crate::page::FrameId<'a>) -> Self { self.openerFrameId = Some(openerFrameId); self }
pub fn parentFrameId(mut self, parentFrameId: crate::page::FrameId<'a>) -> Self { self.parentFrameId = Some(parentFrameId); self }
pub fn browserContextId(mut self, browserContextId: crate::browser::BrowserContextID<'a>) -> Self { self.browserContextId = Some(browserContextId); self }
pub fn subtype(mut self, subtype: impl Into<Cow<'a, str>>) -> Self { self.subtype = Some(subtype.into()); self }
pub fn build(self) -> TargetInfo<'a> {
TargetInfo {
targetId: self.targetId,
type_: self.type_,
title: self.title,
url: self.url,
attached: self.attached,
openerId: self.openerId,
canAccessOpener: self.canAccessOpener,
openerFrameId: self.openerFrameId,
parentFrameId: self.parentFrameId,
browserContextId: self.browserContextId,
subtype: self.subtype,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FilterEntry<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
exclude: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "type")]
type_: Option<Cow<'a, str>>,
}
impl<'a> FilterEntry<'a> {
pub fn builder() -> FilterEntryBuilder<'a> {
FilterEntryBuilder {
exclude: None,
type_: None,
}
}
pub fn exclude(&self) -> Option<bool> { self.exclude }
pub fn type_(&self) -> Option<&str> { self.type_.as_deref() }
}
#[derive(Default)]
pub struct FilterEntryBuilder<'a> {
exclude: Option<bool>,
type_: Option<Cow<'a, str>>,
}
impl<'a> FilterEntryBuilder<'a> {
pub fn exclude(mut self, exclude: bool) -> Self { self.exclude = Some(exclude); self }
pub fn type_(mut self, type_: impl Into<Cow<'a, str>>) -> Self { self.type_ = Some(type_.into()); self }
pub fn build(self) -> FilterEntry<'a> {
FilterEntry {
exclude: self.exclude,
type_: self.type_,
}
}
}
pub type TargetFilter<'a> = Vec<FilterEntry<'a>>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RemoteLocation<'a> {
host: Cow<'a, str>,
port: i64,
}
impl<'a> RemoteLocation<'a> {
pub fn builder(host: impl Into<Cow<'a, str>>, port: i64) -> RemoteLocationBuilder<'a> {
RemoteLocationBuilder {
host: host.into(),
port: port,
}
}
pub fn host(&self) -> &str { self.host.as_ref() }
pub fn port(&self) -> i64 { self.port }
}
pub struct RemoteLocationBuilder<'a> {
host: Cow<'a, str>,
port: i64,
}
impl<'a> RemoteLocationBuilder<'a> {
pub fn build(self) -> RemoteLocation<'a> {
RemoteLocation {
host: self.host,
port: self.port,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum WindowState {
#[default]
#[serde(rename = "normal")]
Normal,
#[serde(rename = "minimized")]
Minimized,
#[serde(rename = "maximized")]
Maximized,
#[serde(rename = "fullscreen")]
Fullscreen,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ActivateTargetParams<'a> {
targetId: TargetID<'a>,
}
impl<'a> ActivateTargetParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> ActivateTargetParamsBuilder<'a> {
ActivateTargetParamsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
}
pub struct ActivateTargetParamsBuilder<'a> {
targetId: TargetID<'a>,
}
impl<'a> ActivateTargetParamsBuilder<'a> {
pub fn build(self) -> ActivateTargetParams<'a> {
ActivateTargetParams {
targetId: self.targetId,
}
}
}
impl<'a> ActivateTargetParams<'a> { pub const METHOD: &'static str = "Target.activateTarget"; }
impl<'a> crate::CdpCommand<'a> for ActivateTargetParams<'a> {
const METHOD: &'static str = "Target.activateTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetParams<'a> {
targetId: TargetID<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
flatten: Option<bool>,
}
impl<'a> AttachToTargetParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> AttachToTargetParamsBuilder<'a> {
AttachToTargetParamsBuilder {
targetId: targetId,
flatten: None,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
pub fn flatten(&self) -> Option<bool> { self.flatten }
}
pub struct AttachToTargetParamsBuilder<'a> {
targetId: TargetID<'a>,
flatten: Option<bool>,
}
impl<'a> AttachToTargetParamsBuilder<'a> {
pub fn flatten(mut self, flatten: bool) -> Self { self.flatten = Some(flatten); self }
pub fn build(self) -> AttachToTargetParams<'a> {
AttachToTargetParams {
targetId: self.targetId,
flatten: self.flatten,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetReturns<'a> {
sessionId: SessionID<'a>,
}
impl<'a> AttachToTargetReturns<'a> {
pub fn builder(sessionId: SessionID<'a>) -> AttachToTargetReturnsBuilder<'a> {
AttachToTargetReturnsBuilder {
sessionId: sessionId,
}
}
pub fn sessionId(&self) -> &SessionID<'a> { &self.sessionId }
}
pub struct AttachToTargetReturnsBuilder<'a> {
sessionId: SessionID<'a>,
}
impl<'a> AttachToTargetReturnsBuilder<'a> {
pub fn build(self) -> AttachToTargetReturns<'a> {
AttachToTargetReturns {
sessionId: self.sessionId,
}
}
}
impl<'a> AttachToTargetParams<'a> { pub const METHOD: &'static str = "Target.attachToTarget"; }
impl<'a> crate::CdpCommand<'a> for AttachToTargetParams<'a> {
const METHOD: &'static str = "Target.attachToTarget";
type Response = AttachToTargetReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToBrowserTargetReturns<'a> {
sessionId: SessionID<'a>,
}
impl<'a> AttachToBrowserTargetReturns<'a> {
pub fn builder(sessionId: SessionID<'a>) -> AttachToBrowserTargetReturnsBuilder<'a> {
AttachToBrowserTargetReturnsBuilder {
sessionId: sessionId,
}
}
pub fn sessionId(&self) -> &SessionID<'a> { &self.sessionId }
}
pub struct AttachToBrowserTargetReturnsBuilder<'a> {
sessionId: SessionID<'a>,
}
impl<'a> AttachToBrowserTargetReturnsBuilder<'a> {
pub fn build(self) -> AttachToBrowserTargetReturns<'a> {
AttachToBrowserTargetReturns {
sessionId: self.sessionId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct AttachToBrowserTargetParams {}
impl AttachToBrowserTargetParams { pub const METHOD: &'static str = "Target.attachToBrowserTarget"; }
impl<'a> crate::CdpCommand<'a> for AttachToBrowserTargetParams {
const METHOD: &'static str = "Target.attachToBrowserTarget";
type Response = AttachToBrowserTargetReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetParams<'a> {
targetId: TargetID<'a>,
}
impl<'a> CloseTargetParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> CloseTargetParamsBuilder<'a> {
CloseTargetParamsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
}
pub struct CloseTargetParamsBuilder<'a> {
targetId: TargetID<'a>,
}
impl<'a> CloseTargetParamsBuilder<'a> {
pub fn build(self) -> CloseTargetParams<'a> {
CloseTargetParams {
targetId: self.targetId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetReturns {
success: bool,
}
impl CloseTargetReturns {
pub fn builder(success: bool) -> CloseTargetReturnsBuilder {
CloseTargetReturnsBuilder {
success: success,
}
}
pub fn success(&self) -> bool { self.success }
}
pub struct CloseTargetReturnsBuilder {
success: bool,
}
impl CloseTargetReturnsBuilder {
pub fn build(self) -> CloseTargetReturns {
CloseTargetReturns {
success: self.success,
}
}
}
impl<'a> CloseTargetParams<'a> { pub const METHOD: &'static str = "Target.closeTarget"; }
impl<'a> crate::CdpCommand<'a> for CloseTargetParams<'a> {
const METHOD: &'static str = "Target.closeTarget";
type Response = CloseTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExposeDevToolsProtocolParams<'a> {
targetId: TargetID<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
bindingName: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
inheritPermissions: Option<bool>,
}
impl<'a> ExposeDevToolsProtocolParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> ExposeDevToolsProtocolParamsBuilder<'a> {
ExposeDevToolsProtocolParamsBuilder {
targetId: targetId,
bindingName: None,
inheritPermissions: None,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
pub fn bindingName(&self) -> Option<&str> { self.bindingName.as_deref() }
pub fn inheritPermissions(&self) -> Option<bool> { self.inheritPermissions }
}
pub struct ExposeDevToolsProtocolParamsBuilder<'a> {
targetId: TargetID<'a>,
bindingName: Option<Cow<'a, str>>,
inheritPermissions: Option<bool>,
}
impl<'a> ExposeDevToolsProtocolParamsBuilder<'a> {
pub fn bindingName(mut self, bindingName: impl Into<Cow<'a, str>>) -> Self { self.bindingName = Some(bindingName.into()); self }
pub fn inheritPermissions(mut self, inheritPermissions: bool) -> Self { self.inheritPermissions = Some(inheritPermissions); self }
pub fn build(self) -> ExposeDevToolsProtocolParams<'a> {
ExposeDevToolsProtocolParams {
targetId: self.targetId,
bindingName: self.bindingName,
inheritPermissions: self.inheritPermissions,
}
}
}
impl<'a> ExposeDevToolsProtocolParams<'a> { pub const METHOD: &'static str = "Target.exposeDevToolsProtocol"; }
impl<'a> crate::CdpCommand<'a> for ExposeDevToolsProtocolParams<'a> {
const METHOD: &'static str = "Target.exposeDevToolsProtocol";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
disposeOnDetach: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
proxyServer: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
proxyBypassList: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
originsWithUniversalNetworkAccess: Option<Vec<Cow<'a, str>>>,
}
impl<'a> CreateBrowserContextParams<'a> {
pub fn builder() -> CreateBrowserContextParamsBuilder<'a> {
CreateBrowserContextParamsBuilder {
disposeOnDetach: None,
proxyServer: None,
proxyBypassList: None,
originsWithUniversalNetworkAccess: None,
}
}
pub fn disposeOnDetach(&self) -> Option<bool> { self.disposeOnDetach }
pub fn proxyServer(&self) -> Option<&str> { self.proxyServer.as_deref() }
pub fn proxyBypassList(&self) -> Option<&str> { self.proxyBypassList.as_deref() }
pub fn originsWithUniversalNetworkAccess(&self) -> Option<&[Cow<'a, str>]> { self.originsWithUniversalNetworkAccess.as_deref() }
}
#[derive(Default)]
pub struct CreateBrowserContextParamsBuilder<'a> {
disposeOnDetach: Option<bool>,
proxyServer: Option<Cow<'a, str>>,
proxyBypassList: Option<Cow<'a, str>>,
originsWithUniversalNetworkAccess: Option<Vec<Cow<'a, str>>>,
}
impl<'a> CreateBrowserContextParamsBuilder<'a> {
pub fn disposeOnDetach(mut self, disposeOnDetach: bool) -> Self { self.disposeOnDetach = Some(disposeOnDetach); self }
pub fn proxyServer(mut self, proxyServer: impl Into<Cow<'a, str>>) -> Self { self.proxyServer = Some(proxyServer.into()); self }
pub fn proxyBypassList(mut self, proxyBypassList: impl Into<Cow<'a, str>>) -> Self { self.proxyBypassList = Some(proxyBypassList.into()); self }
pub fn originsWithUniversalNetworkAccess(mut self, originsWithUniversalNetworkAccess: Vec<Cow<'a, str>>) -> Self { self.originsWithUniversalNetworkAccess = Some(originsWithUniversalNetworkAccess); self }
pub fn build(self) -> CreateBrowserContextParams<'a> {
CreateBrowserContextParams {
disposeOnDetach: self.disposeOnDetach,
proxyServer: self.proxyServer,
proxyBypassList: self.proxyBypassList,
originsWithUniversalNetworkAccess: self.originsWithUniversalNetworkAccess,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextReturns<'a> {
browserContextId: crate::browser::BrowserContextID<'a>,
}
impl<'a> CreateBrowserContextReturns<'a> {
pub fn builder(browserContextId: crate::browser::BrowserContextID<'a>) -> CreateBrowserContextReturnsBuilder<'a> {
CreateBrowserContextReturnsBuilder {
browserContextId: browserContextId,
}
}
pub fn browserContextId(&self) -> &crate::browser::BrowserContextID<'a> { &self.browserContextId }
}
pub struct CreateBrowserContextReturnsBuilder<'a> {
browserContextId: crate::browser::BrowserContextID<'a>,
}
impl<'a> CreateBrowserContextReturnsBuilder<'a> {
pub fn build(self) -> CreateBrowserContextReturns<'a> {
CreateBrowserContextReturns {
browserContextId: self.browserContextId,
}
}
}
impl<'a> CreateBrowserContextParams<'a> { pub const METHOD: &'static str = "Target.createBrowserContext"; }
impl<'a> crate::CdpCommand<'a> for CreateBrowserContextParams<'a> {
const METHOD: &'static str = "Target.createBrowserContext";
type Response = CreateBrowserContextReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBrowserContextsReturns<'a> {
browserContextIds: Vec<crate::browser::BrowserContextID<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
defaultBrowserContextId: Option<crate::browser::BrowserContextID<'a>>,
}
impl<'a> GetBrowserContextsReturns<'a> {
pub fn builder(browserContextIds: Vec<crate::browser::BrowserContextID<'a>>) -> GetBrowserContextsReturnsBuilder<'a> {
GetBrowserContextsReturnsBuilder {
browserContextIds: browserContextIds,
defaultBrowserContextId: None,
}
}
pub fn browserContextIds(&self) -> &[crate::browser::BrowserContextID<'a>] { &self.browserContextIds }
pub fn defaultBrowserContextId(&self) -> Option<&crate::browser::BrowserContextID<'a>> { self.defaultBrowserContextId.as_ref() }
}
pub struct GetBrowserContextsReturnsBuilder<'a> {
browserContextIds: Vec<crate::browser::BrowserContextID<'a>>,
defaultBrowserContextId: Option<crate::browser::BrowserContextID<'a>>,
}
impl<'a> GetBrowserContextsReturnsBuilder<'a> {
pub fn defaultBrowserContextId(mut self, defaultBrowserContextId: crate::browser::BrowserContextID<'a>) -> Self { self.defaultBrowserContextId = Some(defaultBrowserContextId); self }
pub fn build(self) -> GetBrowserContextsReturns<'a> {
GetBrowserContextsReturns {
browserContextIds: self.browserContextIds,
defaultBrowserContextId: self.defaultBrowserContextId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetBrowserContextsParams {}
impl GetBrowserContextsParams { pub const METHOD: &'static str = "Target.getBrowserContexts"; }
impl<'a> crate::CdpCommand<'a> for GetBrowserContextsParams {
const METHOD: &'static str = "Target.getBrowserContexts";
type Response = GetBrowserContextsReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetParams<'a> {
url: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
left: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
top: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
width: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
windowState: Option<WindowState>,
#[serde(skip_serializing_if = "Option::is_none")]
browserContextId: Option<crate::browser::BrowserContextID<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
enableBeginFrameControl: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
newWindow: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
background: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
forTab: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
hidden: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
focus: Option<bool>,
}
impl<'a> CreateTargetParams<'a> {
pub fn builder(url: impl Into<Cow<'a, str>>) -> CreateTargetParamsBuilder<'a> {
CreateTargetParamsBuilder {
url: url.into(),
left: None,
top: None,
width: None,
height: None,
windowState: None,
browserContextId: None,
enableBeginFrameControl: None,
newWindow: None,
background: None,
forTab: None,
hidden: None,
focus: None,
}
}
pub fn url(&self) -> &str { self.url.as_ref() }
pub fn left(&self) -> Option<i64> { self.left }
pub fn top(&self) -> Option<i64> { self.top }
pub fn width(&self) -> Option<u64> { self.width }
pub fn height(&self) -> Option<i64> { self.height }
pub fn windowState(&self) -> Option<&WindowState> { self.windowState.as_ref() }
pub fn browserContextId(&self) -> Option<&crate::browser::BrowserContextID<'a>> { self.browserContextId.as_ref() }
pub fn enableBeginFrameControl(&self) -> Option<bool> { self.enableBeginFrameControl }
pub fn newWindow(&self) -> Option<bool> { self.newWindow }
pub fn background(&self) -> Option<bool> { self.background }
pub fn forTab(&self) -> Option<bool> { self.forTab }
pub fn hidden(&self) -> Option<bool> { self.hidden }
pub fn focus(&self) -> Option<bool> { self.focus }
}
pub struct CreateTargetParamsBuilder<'a> {
url: Cow<'a, str>,
left: Option<i64>,
top: Option<i64>,
width: Option<u64>,
height: Option<i64>,
windowState: Option<WindowState>,
browserContextId: Option<crate::browser::BrowserContextID<'a>>,
enableBeginFrameControl: Option<bool>,
newWindow: Option<bool>,
background: Option<bool>,
forTab: Option<bool>,
hidden: Option<bool>,
focus: Option<bool>,
}
impl<'a> CreateTargetParamsBuilder<'a> {
pub fn left(mut self, left: i64) -> Self { self.left = Some(left); self }
pub fn top(mut self, top: i64) -> Self { self.top = Some(top); self }
pub fn width(mut self, width: u64) -> Self { self.width = Some(width); self }
pub fn height(mut self, height: i64) -> Self { self.height = Some(height); self }
pub fn windowState(mut self, windowState: WindowState) -> Self { self.windowState = Some(windowState); self }
pub fn browserContextId(mut self, browserContextId: crate::browser::BrowserContextID<'a>) -> Self { self.browserContextId = Some(browserContextId); self }
pub fn enableBeginFrameControl(mut self, enableBeginFrameControl: bool) -> Self { self.enableBeginFrameControl = Some(enableBeginFrameControl); self }
pub fn newWindow(mut self, newWindow: bool) -> Self { self.newWindow = Some(newWindow); self }
pub fn background(mut self, background: bool) -> Self { self.background = Some(background); self }
pub fn forTab(mut self, forTab: bool) -> Self { self.forTab = Some(forTab); self }
pub fn hidden(mut self, hidden: bool) -> Self { self.hidden = Some(hidden); self }
pub fn focus(mut self, focus: bool) -> Self { self.focus = Some(focus); self }
pub fn build(self) -> CreateTargetParams<'a> {
CreateTargetParams {
url: self.url,
left: self.left,
top: self.top,
width: self.width,
height: self.height,
windowState: self.windowState,
browserContextId: self.browserContextId,
enableBeginFrameControl: self.enableBeginFrameControl,
newWindow: self.newWindow,
background: self.background,
forTab: self.forTab,
hidden: self.hidden,
focus: self.focus,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetReturns<'a> {
targetId: TargetID<'a>,
}
impl<'a> CreateTargetReturns<'a> {
pub fn builder(targetId: TargetID<'a>) -> CreateTargetReturnsBuilder<'a> {
CreateTargetReturnsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
}
pub struct CreateTargetReturnsBuilder<'a> {
targetId: TargetID<'a>,
}
impl<'a> CreateTargetReturnsBuilder<'a> {
pub fn build(self) -> CreateTargetReturns<'a> {
CreateTargetReturns {
targetId: self.targetId,
}
}
}
impl<'a> CreateTargetParams<'a> { pub const METHOD: &'static str = "Target.createTarget"; }
impl<'a> crate::CdpCommand<'a> for CreateTargetParams<'a> {
const METHOD: &'static str = "Target.createTarget";
type Response = CreateTargetReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DetachFromTargetParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
sessionId: Option<SessionID<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
targetId: Option<TargetID<'a>>,
}
impl<'a> DetachFromTargetParams<'a> {
pub fn builder() -> DetachFromTargetParamsBuilder<'a> {
DetachFromTargetParamsBuilder {
sessionId: None,
targetId: None,
}
}
pub fn sessionId(&self) -> Option<&SessionID<'a>> { self.sessionId.as_ref() }
pub fn targetId(&self) -> Option<&TargetID<'a>> { self.targetId.as_ref() }
}
#[derive(Default)]
pub struct DetachFromTargetParamsBuilder<'a> {
sessionId: Option<SessionID<'a>>,
targetId: Option<TargetID<'a>>,
}
impl<'a> DetachFromTargetParamsBuilder<'a> {
pub fn sessionId(mut self, sessionId: SessionID<'a>) -> Self { self.sessionId = Some(sessionId); self }
pub fn targetId(mut self, targetId: TargetID<'a>) -> Self { self.targetId = Some(targetId); self }
pub fn build(self) -> DetachFromTargetParams<'a> {
DetachFromTargetParams {
sessionId: self.sessionId,
targetId: self.targetId,
}
}
}
impl<'a> DetachFromTargetParams<'a> { pub const METHOD: &'static str = "Target.detachFromTarget"; }
impl<'a> crate::CdpCommand<'a> for DetachFromTargetParams<'a> {
const METHOD: &'static str = "Target.detachFromTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DisposeBrowserContextParams<'a> {
browserContextId: crate::browser::BrowserContextID<'a>,
}
impl<'a> DisposeBrowserContextParams<'a> {
pub fn builder(browserContextId: crate::browser::BrowserContextID<'a>) -> DisposeBrowserContextParamsBuilder<'a> {
DisposeBrowserContextParamsBuilder {
browserContextId: browserContextId,
}
}
pub fn browserContextId(&self) -> &crate::browser::BrowserContextID<'a> { &self.browserContextId }
}
pub struct DisposeBrowserContextParamsBuilder<'a> {
browserContextId: crate::browser::BrowserContextID<'a>,
}
impl<'a> DisposeBrowserContextParamsBuilder<'a> {
pub fn build(self) -> DisposeBrowserContextParams<'a> {
DisposeBrowserContextParams {
browserContextId: self.browserContextId,
}
}
}
impl<'a> DisposeBrowserContextParams<'a> { pub const METHOD: &'static str = "Target.disposeBrowserContext"; }
impl<'a> crate::CdpCommand<'a> for DisposeBrowserContextParams<'a> {
const METHOD: &'static str = "Target.disposeBrowserContext";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
targetId: Option<TargetID<'a>>,
}
impl<'a> GetTargetInfoParams<'a> {
pub fn builder() -> GetTargetInfoParamsBuilder<'a> {
GetTargetInfoParamsBuilder {
targetId: None,
}
}
pub fn targetId(&self) -> Option<&TargetID<'a>> { self.targetId.as_ref() }
}
#[derive(Default)]
pub struct GetTargetInfoParamsBuilder<'a> {
targetId: Option<TargetID<'a>>,
}
impl<'a> GetTargetInfoParamsBuilder<'a> {
pub fn targetId(mut self, targetId: TargetID<'a>) -> Self { self.targetId = Some(targetId); self }
pub fn build(self) -> GetTargetInfoParams<'a> {
GetTargetInfoParams {
targetId: self.targetId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoReturns<'a> {
targetInfo: TargetInfo<'a>,
}
impl<'a> GetTargetInfoReturns<'a> {
pub fn builder(targetInfo: TargetInfo<'a>) -> GetTargetInfoReturnsBuilder<'a> {
GetTargetInfoReturnsBuilder {
targetInfo: targetInfo,
}
}
pub fn targetInfo(&self) -> &TargetInfo<'a> { &self.targetInfo }
}
pub struct GetTargetInfoReturnsBuilder<'a> {
targetInfo: TargetInfo<'a>,
}
impl<'a> GetTargetInfoReturnsBuilder<'a> {
pub fn build(self) -> GetTargetInfoReturns<'a> {
GetTargetInfoReturns {
targetInfo: self.targetInfo,
}
}
}
impl<'a> GetTargetInfoParams<'a> { pub const METHOD: &'static str = "Target.getTargetInfo"; }
impl<'a> crate::CdpCommand<'a> for GetTargetInfoParams<'a> {
const METHOD: &'static str = "Target.getTargetInfo";
type Response = GetTargetInfoReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<TargetFilter<'a>>,
}
impl<'a> GetTargetsParams<'a> {
pub fn builder() -> GetTargetsParamsBuilder<'a> {
GetTargetsParamsBuilder {
filter: None,
}
}
pub fn filter(&self) -> Option<&TargetFilter<'a>> { self.filter.as_ref() }
}
#[derive(Default)]
pub struct GetTargetsParamsBuilder<'a> {
filter: Option<TargetFilter<'a>>,
}
impl<'a> GetTargetsParamsBuilder<'a> {
pub fn filter(mut self, filter: TargetFilter<'a>) -> Self { self.filter = Some(filter); self }
pub fn build(self) -> GetTargetsParams<'a> {
GetTargetsParams {
filter: self.filter,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsReturns<'a> {
targetInfos: Vec<TargetInfo<'a>>,
}
impl<'a> GetTargetsReturns<'a> {
pub fn builder(targetInfos: Vec<TargetInfo<'a>>) -> GetTargetsReturnsBuilder<'a> {
GetTargetsReturnsBuilder {
targetInfos: targetInfos,
}
}
pub fn targetInfos(&self) -> &[TargetInfo<'a>] { &self.targetInfos }
}
pub struct GetTargetsReturnsBuilder<'a> {
targetInfos: Vec<TargetInfo<'a>>,
}
impl<'a> GetTargetsReturnsBuilder<'a> {
pub fn build(self) -> GetTargetsReturns<'a> {
GetTargetsReturns {
targetInfos: self.targetInfos,
}
}
}
impl<'a> GetTargetsParams<'a> { pub const METHOD: &'static str = "Target.getTargets"; }
impl<'a> crate::CdpCommand<'a> for GetTargetsParams<'a> {
const METHOD: &'static str = "Target.getTargets";
type Response = GetTargetsReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SendMessageToTargetParams<'a> {
message: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
sessionId: Option<SessionID<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
targetId: Option<TargetID<'a>>,
}
impl<'a> SendMessageToTargetParams<'a> {
pub fn builder(message: impl Into<Cow<'a, str>>) -> SendMessageToTargetParamsBuilder<'a> {
SendMessageToTargetParamsBuilder {
message: message.into(),
sessionId: None,
targetId: None,
}
}
pub fn message(&self) -> &str { self.message.as_ref() }
pub fn sessionId(&self) -> Option<&SessionID<'a>> { self.sessionId.as_ref() }
pub fn targetId(&self) -> Option<&TargetID<'a>> { self.targetId.as_ref() }
}
pub struct SendMessageToTargetParamsBuilder<'a> {
message: Cow<'a, str>,
sessionId: Option<SessionID<'a>>,
targetId: Option<TargetID<'a>>,
}
impl<'a> SendMessageToTargetParamsBuilder<'a> {
pub fn sessionId(mut self, sessionId: SessionID<'a>) -> Self { self.sessionId = Some(sessionId); self }
pub fn targetId(mut self, targetId: TargetID<'a>) -> Self { self.targetId = Some(targetId); self }
pub fn build(self) -> SendMessageToTargetParams<'a> {
SendMessageToTargetParams {
message: self.message,
sessionId: self.sessionId,
targetId: self.targetId,
}
}
}
impl<'a> SendMessageToTargetParams<'a> { pub const METHOD: &'static str = "Target.sendMessageToTarget"; }
impl<'a> crate::CdpCommand<'a> for SendMessageToTargetParams<'a> {
const METHOD: &'static str = "Target.sendMessageToTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetAutoAttachParams<'a> {
autoAttach: bool,
waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
flatten: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<TargetFilter<'a>>,
}
impl<'a> SetAutoAttachParams<'a> {
pub fn builder(autoAttach: bool, waitForDebuggerOnStart: bool) -> SetAutoAttachParamsBuilder<'a> {
SetAutoAttachParamsBuilder {
autoAttach: autoAttach,
waitForDebuggerOnStart: waitForDebuggerOnStart,
flatten: None,
filter: None,
}
}
pub fn autoAttach(&self) -> bool { self.autoAttach }
pub fn waitForDebuggerOnStart(&self) -> bool { self.waitForDebuggerOnStart }
pub fn flatten(&self) -> Option<bool> { self.flatten }
pub fn filter(&self) -> Option<&TargetFilter<'a>> { self.filter.as_ref() }
}
pub struct SetAutoAttachParamsBuilder<'a> {
autoAttach: bool,
waitForDebuggerOnStart: bool,
flatten: Option<bool>,
filter: Option<TargetFilter<'a>>,
}
impl<'a> SetAutoAttachParamsBuilder<'a> {
pub fn flatten(mut self, flatten: bool) -> Self { self.flatten = Some(flatten); self }
pub fn filter(mut self, filter: TargetFilter<'a>) -> Self { self.filter = Some(filter); self }
pub fn build(self) -> SetAutoAttachParams<'a> {
SetAutoAttachParams {
autoAttach: self.autoAttach,
waitForDebuggerOnStart: self.waitForDebuggerOnStart,
flatten: self.flatten,
filter: self.filter,
}
}
}
impl<'a> SetAutoAttachParams<'a> { pub const METHOD: &'static str = "Target.setAutoAttach"; }
impl<'a> crate::CdpCommand<'a> for SetAutoAttachParams<'a> {
const METHOD: &'static str = "Target.setAutoAttach";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AutoAttachRelatedParams<'a> {
targetId: TargetID<'a>,
waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<TargetFilter<'a>>,
}
impl<'a> AutoAttachRelatedParams<'a> {
pub fn builder(targetId: TargetID<'a>, waitForDebuggerOnStart: bool) -> AutoAttachRelatedParamsBuilder<'a> {
AutoAttachRelatedParamsBuilder {
targetId: targetId,
waitForDebuggerOnStart: waitForDebuggerOnStart,
filter: None,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
pub fn waitForDebuggerOnStart(&self) -> bool { self.waitForDebuggerOnStart }
pub fn filter(&self) -> Option<&TargetFilter<'a>> { self.filter.as_ref() }
}
pub struct AutoAttachRelatedParamsBuilder<'a> {
targetId: TargetID<'a>,
waitForDebuggerOnStart: bool,
filter: Option<TargetFilter<'a>>,
}
impl<'a> AutoAttachRelatedParamsBuilder<'a> {
pub fn filter(mut self, filter: TargetFilter<'a>) -> Self { self.filter = Some(filter); self }
pub fn build(self) -> AutoAttachRelatedParams<'a> {
AutoAttachRelatedParams {
targetId: self.targetId,
waitForDebuggerOnStart: self.waitForDebuggerOnStart,
filter: self.filter,
}
}
}
impl<'a> AutoAttachRelatedParams<'a> { pub const METHOD: &'static str = "Target.autoAttachRelated"; }
impl<'a> crate::CdpCommand<'a> for AutoAttachRelatedParams<'a> {
const METHOD: &'static str = "Target.autoAttachRelated";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDiscoverTargetsParams<'a> {
discover: bool,
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<TargetFilter<'a>>,
}
impl<'a> SetDiscoverTargetsParams<'a> {
pub fn builder(discover: bool) -> SetDiscoverTargetsParamsBuilder<'a> {
SetDiscoverTargetsParamsBuilder {
discover: discover,
filter: None,
}
}
pub fn discover(&self) -> bool { self.discover }
pub fn filter(&self) -> Option<&TargetFilter<'a>> { self.filter.as_ref() }
}
pub struct SetDiscoverTargetsParamsBuilder<'a> {
discover: bool,
filter: Option<TargetFilter<'a>>,
}
impl<'a> SetDiscoverTargetsParamsBuilder<'a> {
pub fn filter(mut self, filter: TargetFilter<'a>) -> Self { self.filter = Some(filter); self }
pub fn build(self) -> SetDiscoverTargetsParams<'a> {
SetDiscoverTargetsParams {
discover: self.discover,
filter: self.filter,
}
}
}
impl<'a> SetDiscoverTargetsParams<'a> { pub const METHOD: &'static str = "Target.setDiscoverTargets"; }
impl<'a> crate::CdpCommand<'a> for SetDiscoverTargetsParams<'a> {
const METHOD: &'static str = "Target.setDiscoverTargets";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetRemoteLocationsParams<'a> {
locations: Vec<RemoteLocation<'a>>,
}
impl<'a> SetRemoteLocationsParams<'a> {
pub fn builder(locations: Vec<RemoteLocation<'a>>) -> SetRemoteLocationsParamsBuilder<'a> {
SetRemoteLocationsParamsBuilder {
locations: locations,
}
}
pub fn locations(&self) -> &[RemoteLocation<'a>] { &self.locations }
}
pub struct SetRemoteLocationsParamsBuilder<'a> {
locations: Vec<RemoteLocation<'a>>,
}
impl<'a> SetRemoteLocationsParamsBuilder<'a> {
pub fn build(self) -> SetRemoteLocationsParams<'a> {
SetRemoteLocationsParams {
locations: self.locations,
}
}
}
impl<'a> SetRemoteLocationsParams<'a> { pub const METHOD: &'static str = "Target.setRemoteLocations"; }
impl<'a> crate::CdpCommand<'a> for SetRemoteLocationsParams<'a> {
const METHOD: &'static str = "Target.setRemoteLocations";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetParams<'a> {
targetId: TargetID<'a>,
}
impl<'a> GetDevToolsTargetParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> GetDevToolsTargetParamsBuilder<'a> {
GetDevToolsTargetParamsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
}
pub struct GetDevToolsTargetParamsBuilder<'a> {
targetId: TargetID<'a>,
}
impl<'a> GetDevToolsTargetParamsBuilder<'a> {
pub fn build(self) -> GetDevToolsTargetParams<'a> {
GetDevToolsTargetParams {
targetId: self.targetId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetReturns<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
targetId: Option<TargetID<'a>>,
}
impl<'a> GetDevToolsTargetReturns<'a> {
pub fn builder() -> GetDevToolsTargetReturnsBuilder<'a> {
GetDevToolsTargetReturnsBuilder {
targetId: None,
}
}
pub fn targetId(&self) -> Option<&TargetID<'a>> { self.targetId.as_ref() }
}
#[derive(Default)]
pub struct GetDevToolsTargetReturnsBuilder<'a> {
targetId: Option<TargetID<'a>>,
}
impl<'a> GetDevToolsTargetReturnsBuilder<'a> {
pub fn targetId(mut self, targetId: TargetID<'a>) -> Self { self.targetId = Some(targetId); self }
pub fn build(self) -> GetDevToolsTargetReturns<'a> {
GetDevToolsTargetReturns {
targetId: self.targetId,
}
}
}
impl<'a> GetDevToolsTargetParams<'a> { pub const METHOD: &'static str = "Target.getDevToolsTarget"; }
impl<'a> crate::CdpCommand<'a> for GetDevToolsTargetParams<'a> {
const METHOD: &'static str = "Target.getDevToolsTarget";
type Response = GetDevToolsTargetReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsParams<'a> {
targetId: TargetID<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
panelId: Option<Cow<'a, str>>,
}
impl<'a> OpenDevToolsParams<'a> {
pub fn builder(targetId: TargetID<'a>) -> OpenDevToolsParamsBuilder<'a> {
OpenDevToolsParamsBuilder {
targetId: targetId,
panelId: None,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
pub fn panelId(&self) -> Option<&str> { self.panelId.as_deref() }
}
pub struct OpenDevToolsParamsBuilder<'a> {
targetId: TargetID<'a>,
panelId: Option<Cow<'a, str>>,
}
impl<'a> OpenDevToolsParamsBuilder<'a> {
pub fn panelId(mut self, panelId: impl Into<Cow<'a, str>>) -> Self { self.panelId = Some(panelId.into()); self }
pub fn build(self) -> OpenDevToolsParams<'a> {
OpenDevToolsParams {
targetId: self.targetId,
panelId: self.panelId,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsReturns<'a> {
targetId: TargetID<'a>,
}
impl<'a> OpenDevToolsReturns<'a> {
pub fn builder(targetId: TargetID<'a>) -> OpenDevToolsReturnsBuilder<'a> {
OpenDevToolsReturnsBuilder {
targetId: targetId,
}
}
pub fn targetId(&self) -> &TargetID<'a> { &self.targetId }
}
pub struct OpenDevToolsReturnsBuilder<'a> {
targetId: TargetID<'a>,
}
impl<'a> OpenDevToolsReturnsBuilder<'a> {
pub fn build(self) -> OpenDevToolsReturns<'a> {
OpenDevToolsReturns {
targetId: self.targetId,
}
}
}
impl<'a> OpenDevToolsParams<'a> { pub const METHOD: &'static str = "Target.openDevTools"; }
impl<'a> crate::CdpCommand<'a> for OpenDevToolsParams<'a> {
const METHOD: &'static str = "Target.openDevTools";
type Response = OpenDevToolsReturns<'a>;
}