use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
use std::borrow::Cow;
pub type BrowserContextID<'a> = Cow<'a, str>;
pub type WindowID = i64;
#[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 Bounds {
#[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", rename = "windowState")]
window_state: Option<WindowState>,
}
impl Bounds {
pub fn builder() -> BoundsBuilder {
BoundsBuilder {
left: None,
top: None,
width: None,
height: None,
window_state: None,
}
}
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 window_state(&self) -> Option<&WindowState> { self.window_state.as_ref() }
}
#[derive(Default)]
pub struct BoundsBuilder {
left: Option<i64>,
top: Option<i64>,
width: Option<u64>,
height: Option<i64>,
window_state: Option<WindowState>,
}
impl BoundsBuilder {
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 window_state(mut self, window_state: impl Into<WindowState>) -> Self { self.window_state = Some(window_state.into()); self }
pub fn build(self) -> Bounds {
Bounds {
left: self.left,
top: self.top,
width: self.width,
height: self.height,
window_state: self.window_state,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PermissionType {
#[default]
#[serde(rename = "ar")]
Ar,
#[serde(rename = "audioCapture")]
AudioCapture,
#[serde(rename = "automaticFullscreen")]
AutomaticFullscreen,
#[serde(rename = "backgroundFetch")]
BackgroundFetch,
#[serde(rename = "backgroundSync")]
BackgroundSync,
#[serde(rename = "cameraPanTiltZoom")]
CameraPanTiltZoom,
#[serde(rename = "capturedSurfaceControl")]
CapturedSurfaceControl,
#[serde(rename = "clipboardReadWrite")]
ClipboardReadWrite,
#[serde(rename = "clipboardSanitizedWrite")]
ClipboardSanitizedWrite,
#[serde(rename = "displayCapture")]
DisplayCapture,
#[serde(rename = "durableStorage")]
DurableStorage,
#[serde(rename = "geolocation")]
Geolocation,
#[serde(rename = "handTracking")]
HandTracking,
#[serde(rename = "idleDetection")]
IdleDetection,
#[serde(rename = "keyboardLock")]
KeyboardLock,
#[serde(rename = "localFonts")]
LocalFonts,
#[serde(rename = "localNetwork")]
LocalNetwork,
#[serde(rename = "localNetworkAccess")]
LocalNetworkAccess,
#[serde(rename = "loopbackNetwork")]
LoopbackNetwork,
#[serde(rename = "midi")]
Midi,
#[serde(rename = "midiSysex")]
MidiSysex,
#[serde(rename = "nfc")]
Nfc,
#[serde(rename = "notifications")]
Notifications,
#[serde(rename = "paymentHandler")]
PaymentHandler,
#[serde(rename = "periodicBackgroundSync")]
PeriodicBackgroundSync,
#[serde(rename = "pointerLock")]
PointerLock,
#[serde(rename = "protectedMediaIdentifier")]
ProtectedMediaIdentifier,
#[serde(rename = "sensors")]
Sensors,
#[serde(rename = "smartCard")]
SmartCard,
#[serde(rename = "speakerSelection")]
SpeakerSelection,
#[serde(rename = "storageAccess")]
StorageAccess,
#[serde(rename = "topLevelStorageAccess")]
TopLevelStorageAccess,
#[serde(rename = "videoCapture")]
VideoCapture,
#[serde(rename = "vr")]
Vr,
#[serde(rename = "wakeLockScreen")]
WakeLockScreen,
#[serde(rename = "wakeLockSystem")]
WakeLockSystem,
#[serde(rename = "webAppInstallation")]
WebAppInstallation,
#[serde(rename = "webPrinting")]
WebPrinting,
#[serde(rename = "windowManagement")]
WindowManagement,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PermissionSetting {
#[default]
#[serde(rename = "granted")]
Granted,
#[serde(rename = "denied")]
Denied,
#[serde(rename = "prompt")]
Prompt,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PermissionDescriptor<'a> {
name: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
sysex: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "userVisibleOnly")]
user_visible_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "allowWithoutSanitization")]
allow_without_sanitization: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "allowWithoutGesture")]
allow_without_gesture: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", rename = "panTiltZoom")]
pan_tilt_zoom: Option<bool>,
}
impl<'a> PermissionDescriptor<'a> {
pub fn builder(name: impl Into<Cow<'a, str>>) -> PermissionDescriptorBuilder<'a> {
PermissionDescriptorBuilder {
name: name.into(),
sysex: None,
user_visible_only: None,
allow_without_sanitization: None,
allow_without_gesture: None,
pan_tilt_zoom: None,
}
}
pub fn name(&self) -> &str { self.name.as_ref() }
pub fn sysex(&self) -> Option<bool> { self.sysex }
pub fn user_visible_only(&self) -> Option<bool> { self.user_visible_only }
pub fn allow_without_sanitization(&self) -> Option<bool> { self.allow_without_sanitization }
pub fn allow_without_gesture(&self) -> Option<bool> { self.allow_without_gesture }
pub fn pan_tilt_zoom(&self) -> Option<bool> { self.pan_tilt_zoom }
}
pub struct PermissionDescriptorBuilder<'a> {
name: Cow<'a, str>,
sysex: Option<bool>,
user_visible_only: Option<bool>,
allow_without_sanitization: Option<bool>,
allow_without_gesture: Option<bool>,
pan_tilt_zoom: Option<bool>,
}
impl<'a> PermissionDescriptorBuilder<'a> {
pub fn sysex(mut self, sysex: bool) -> Self { self.sysex = Some(sysex); self }
pub fn user_visible_only(mut self, user_visible_only: bool) -> Self { self.user_visible_only = Some(user_visible_only); self }
pub fn allow_without_sanitization(mut self, allow_without_sanitization: bool) -> Self { self.allow_without_sanitization = Some(allow_without_sanitization); self }
pub fn allow_without_gesture(mut self, allow_without_gesture: bool) -> Self { self.allow_without_gesture = Some(allow_without_gesture); self }
pub fn pan_tilt_zoom(mut self, pan_tilt_zoom: bool) -> Self { self.pan_tilt_zoom = Some(pan_tilt_zoom); self }
pub fn build(self) -> PermissionDescriptor<'a> {
PermissionDescriptor {
name: self.name,
sysex: self.sysex,
user_visible_only: self.user_visible_only,
allow_without_sanitization: self.allow_without_sanitization,
allow_without_gesture: self.allow_without_gesture,
pan_tilt_zoom: self.pan_tilt_zoom,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum BrowserCommandId {
#[default]
#[serde(rename = "openTabSearch")]
OpenTabSearch,
#[serde(rename = "closeTabSearch")]
CloseTabSearch,
#[serde(rename = "openGlic")]
OpenGlic,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Bucket {
low: i64,
high: i64,
count: u64,
}
impl Bucket {
pub fn builder(low: i64, high: i64, count: u64) -> BucketBuilder {
BucketBuilder {
low: low,
high: high,
count: count,
}
}
pub fn low(&self) -> i64 { self.low }
pub fn high(&self) -> i64 { self.high }
pub fn count(&self) -> u64 { self.count }
}
pub struct BucketBuilder {
low: i64,
high: i64,
count: u64,
}
impl BucketBuilder {
pub fn build(self) -> Bucket {
Bucket {
low: self.low,
high: self.high,
count: self.count,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Histogram<'a> {
name: Cow<'a, str>,
sum: i64,
count: u64,
buckets: Vec<Bucket>,
}
impl<'a> Histogram<'a> {
pub fn builder(name: impl Into<Cow<'a, str>>, sum: i64, count: u64, buckets: Vec<Bucket>) -> HistogramBuilder<'a> {
HistogramBuilder {
name: name.into(),
sum: sum,
count: count,
buckets: buckets,
}
}
pub fn name(&self) -> &str { self.name.as_ref() }
pub fn sum(&self) -> i64 { self.sum }
pub fn count(&self) -> u64 { self.count }
pub fn buckets(&self) -> &[Bucket] { &self.buckets }
}
pub struct HistogramBuilder<'a> {
name: Cow<'a, str>,
sum: i64,
count: u64,
buckets: Vec<Bucket>,
}
impl<'a> HistogramBuilder<'a> {
pub fn build(self) -> Histogram<'a> {
Histogram {
name: self.name,
sum: self.sum,
count: self.count,
buckets: self.buckets,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PrivacySandboxAPI {
#[default]
#[serde(rename = "BiddingAndAuctionServices")]
BiddingAndAuctionServices,
#[serde(rename = "TrustedKeyValue")]
TrustedKeyValue,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetPermissionParams<'a> {
permission: PermissionDescriptor<'a>,
setting: PermissionSetting,
#[serde(skip_serializing_if = "Option::is_none")]
origin: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none", rename = "embeddedOrigin")]
embedded_origin: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> SetPermissionParams<'a> {
pub fn builder(permission: PermissionDescriptor<'a>, setting: impl Into<PermissionSetting>) -> SetPermissionParamsBuilder<'a> {
SetPermissionParamsBuilder {
permission: permission,
setting: setting.into(),
origin: None,
embedded_origin: None,
browser_context_id: None,
}
}
pub fn permission(&self) -> &PermissionDescriptor<'a> { &self.permission }
pub fn setting(&self) -> &PermissionSetting { &self.setting }
pub fn origin(&self) -> Option<&str> { self.origin.as_deref() }
pub fn embedded_origin(&self) -> Option<&str> { self.embedded_origin.as_deref() }
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
}
pub struct SetPermissionParamsBuilder<'a> {
permission: PermissionDescriptor<'a>,
setting: PermissionSetting,
origin: Option<Cow<'a, str>>,
embedded_origin: Option<Cow<'a, str>>,
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> SetPermissionParamsBuilder<'a> {
pub fn origin(mut self, origin: impl Into<Cow<'a, str>>) -> Self { self.origin = Some(origin.into()); self }
pub fn embedded_origin(mut self, embedded_origin: impl Into<Cow<'a, str>>) -> Self { self.embedded_origin = Some(embedded_origin.into()); self }
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn build(self) -> SetPermissionParams<'a> {
SetPermissionParams {
permission: self.permission,
setting: self.setting,
origin: self.origin,
embedded_origin: self.embedded_origin,
browser_context_id: self.browser_context_id,
}
}
}
impl<'a> SetPermissionParams<'a> { pub const METHOD: &'static str = "Browser.setPermission"; }
impl<'a> crate::CdpCommand<'a> for SetPermissionParams<'a> {
const METHOD: &'static str = "Browser.setPermission";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GrantPermissionsParams<'a> {
permissions: Vec<PermissionType>,
#[serde(skip_serializing_if = "Option::is_none")]
origin: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> GrantPermissionsParams<'a> {
pub fn builder(permissions: Vec<PermissionType>) -> GrantPermissionsParamsBuilder<'a> {
GrantPermissionsParamsBuilder {
permissions: permissions,
origin: None,
browser_context_id: None,
}
}
pub fn permissions(&self) -> &[PermissionType] { &self.permissions }
pub fn origin(&self) -> Option<&str> { self.origin.as_deref() }
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
}
pub struct GrantPermissionsParamsBuilder<'a> {
permissions: Vec<PermissionType>,
origin: Option<Cow<'a, str>>,
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> GrantPermissionsParamsBuilder<'a> {
pub fn origin(mut self, origin: impl Into<Cow<'a, str>>) -> Self { self.origin = Some(origin.into()); self }
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn build(self) -> GrantPermissionsParams<'a> {
GrantPermissionsParams {
permissions: self.permissions,
origin: self.origin,
browser_context_id: self.browser_context_id,
}
}
}
impl<'a> GrantPermissionsParams<'a> { pub const METHOD: &'static str = "Browser.grantPermissions"; }
impl<'a> crate::CdpCommand<'a> for GrantPermissionsParams<'a> {
const METHOD: &'static str = "Browser.grantPermissions";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ResetPermissionsParams<'a> {
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> ResetPermissionsParams<'a> {
pub fn builder() -> ResetPermissionsParamsBuilder<'a> {
ResetPermissionsParamsBuilder {
browser_context_id: None,
}
}
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
}
#[derive(Default)]
pub struct ResetPermissionsParamsBuilder<'a> {
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> ResetPermissionsParamsBuilder<'a> {
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn build(self) -> ResetPermissionsParams<'a> {
ResetPermissionsParams {
browser_context_id: self.browser_context_id,
}
}
}
impl<'a> ResetPermissionsParams<'a> { pub const METHOD: &'static str = "Browser.resetPermissions"; }
impl<'a> crate::CdpCommand<'a> for ResetPermissionsParams<'a> {
const METHOD: &'static str = "Browser.resetPermissions";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDownloadBehaviorParams<'a> {
behavior: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
#[serde(skip_serializing_if = "Option::is_none", rename = "downloadPath")]
download_path: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none", rename = "eventsEnabled")]
events_enabled: Option<bool>,
}
impl<'a> SetDownloadBehaviorParams<'a> {
pub fn builder(behavior: impl Into<Cow<'a, str>>) -> SetDownloadBehaviorParamsBuilder<'a> {
SetDownloadBehaviorParamsBuilder {
behavior: behavior.into(),
browser_context_id: None,
download_path: None,
events_enabled: None,
}
}
pub fn behavior(&self) -> &str { self.behavior.as_ref() }
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
pub fn download_path(&self) -> Option<&str> { self.download_path.as_deref() }
pub fn events_enabled(&self) -> Option<bool> { self.events_enabled }
}
pub struct SetDownloadBehaviorParamsBuilder<'a> {
behavior: Cow<'a, str>,
browser_context_id: Option<BrowserContextID<'a>>,
download_path: Option<Cow<'a, str>>,
events_enabled: Option<bool>,
}
impl<'a> SetDownloadBehaviorParamsBuilder<'a> {
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn download_path(mut self, download_path: impl Into<Cow<'a, str>>) -> Self { self.download_path = Some(download_path.into()); self }
pub fn events_enabled(mut self, events_enabled: bool) -> Self { self.events_enabled = Some(events_enabled); self }
pub fn build(self) -> SetDownloadBehaviorParams<'a> {
SetDownloadBehaviorParams {
behavior: self.behavior,
browser_context_id: self.browser_context_id,
download_path: self.download_path,
events_enabled: self.events_enabled,
}
}
}
impl<'a> SetDownloadBehaviorParams<'a> { pub const METHOD: &'static str = "Browser.setDownloadBehavior"; }
impl<'a> crate::CdpCommand<'a> for SetDownloadBehaviorParams<'a> {
const METHOD: &'static str = "Browser.setDownloadBehavior";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CancelDownloadParams<'a> {
guid: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> CancelDownloadParams<'a> {
pub fn builder(guid: impl Into<Cow<'a, str>>) -> CancelDownloadParamsBuilder<'a> {
CancelDownloadParamsBuilder {
guid: guid.into(),
browser_context_id: None,
}
}
pub fn guid(&self) -> &str { self.guid.as_ref() }
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
}
pub struct CancelDownloadParamsBuilder<'a> {
guid: Cow<'a, str>,
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> CancelDownloadParamsBuilder<'a> {
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn build(self) -> CancelDownloadParams<'a> {
CancelDownloadParams {
guid: self.guid,
browser_context_id: self.browser_context_id,
}
}
}
impl<'a> CancelDownloadParams<'a> { pub const METHOD: &'static str = "Browser.cancelDownload"; }
impl<'a> crate::CdpCommand<'a> for CancelDownloadParams<'a> {
const METHOD: &'static str = "Browser.cancelDownload";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CloseParams {}
impl CloseParams { pub const METHOD: &'static str = "Browser.close"; }
impl<'a> crate::CdpCommand<'a> for CloseParams {
const METHOD: &'static str = "Browser.close";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CrashParams {}
impl CrashParams { pub const METHOD: &'static str = "Browser.crash"; }
impl<'a> crate::CdpCommand<'a> for CrashParams {
const METHOD: &'static str = "Browser.crash";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CrashGpuProcessParams {}
impl CrashGpuProcessParams { pub const METHOD: &'static str = "Browser.crashGpuProcess"; }
impl<'a> crate::CdpCommand<'a> for CrashGpuProcessParams {
const METHOD: &'static str = "Browser.crashGpuProcess";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetVersionReturns<'a> {
#[serde(rename = "protocolVersion")]
protocol_version: Cow<'a, str>,
product: Cow<'a, str>,
revision: Cow<'a, str>,
#[serde(rename = "userAgent")]
user_agent: Cow<'a, str>,
#[serde(rename = "jsVersion")]
js_version: Cow<'a, str>,
}
impl<'a> GetVersionReturns<'a> {
pub fn builder(protocol_version: impl Into<Cow<'a, str>>, product: impl Into<Cow<'a, str>>, revision: impl Into<Cow<'a, str>>, user_agent: impl Into<Cow<'a, str>>, js_version: impl Into<Cow<'a, str>>) -> GetVersionReturnsBuilder<'a> {
GetVersionReturnsBuilder {
protocol_version: protocol_version.into(),
product: product.into(),
revision: revision.into(),
user_agent: user_agent.into(),
js_version: js_version.into(),
}
}
pub fn protocol_version(&self) -> &str { self.protocol_version.as_ref() }
pub fn product(&self) -> &str { self.product.as_ref() }
pub fn revision(&self) -> &str { self.revision.as_ref() }
pub fn user_agent(&self) -> &str { self.user_agent.as_ref() }
pub fn js_version(&self) -> &str { self.js_version.as_ref() }
}
pub struct GetVersionReturnsBuilder<'a> {
protocol_version: Cow<'a, str>,
product: Cow<'a, str>,
revision: Cow<'a, str>,
user_agent: Cow<'a, str>,
js_version: Cow<'a, str>,
}
impl<'a> GetVersionReturnsBuilder<'a> {
pub fn build(self) -> GetVersionReturns<'a> {
GetVersionReturns {
protocol_version: self.protocol_version,
product: self.product,
revision: self.revision,
user_agent: self.user_agent,
js_version: self.js_version,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetVersionParams {}
impl GetVersionParams { pub const METHOD: &'static str = "Browser.getVersion"; }
impl<'a> crate::CdpCommand<'a> for GetVersionParams {
const METHOD: &'static str = "Browser.getVersion";
type Response = GetVersionReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBrowserCommandLineReturns<'a> {
arguments: Vec<Cow<'a, str>>,
}
impl<'a> GetBrowserCommandLineReturns<'a> {
pub fn builder(arguments: Vec<Cow<'a, str>>) -> GetBrowserCommandLineReturnsBuilder<'a> {
GetBrowserCommandLineReturnsBuilder {
arguments: arguments,
}
}
pub fn arguments(&self) -> &[Cow<'a, str>] { &self.arguments }
}
pub struct GetBrowserCommandLineReturnsBuilder<'a> {
arguments: Vec<Cow<'a, str>>,
}
impl<'a> GetBrowserCommandLineReturnsBuilder<'a> {
pub fn build(self) -> GetBrowserCommandLineReturns<'a> {
GetBrowserCommandLineReturns {
arguments: self.arguments,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetBrowserCommandLineParams {}
impl GetBrowserCommandLineParams { pub const METHOD: &'static str = "Browser.getBrowserCommandLine"; }
impl<'a> crate::CdpCommand<'a> for GetBrowserCommandLineParams {
const METHOD: &'static str = "Browser.getBrowserCommandLine";
type Response = GetBrowserCommandLineReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramsParams<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
query: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
delta: Option<bool>,
}
impl<'a> GetHistogramsParams<'a> {
pub fn builder() -> GetHistogramsParamsBuilder<'a> {
GetHistogramsParamsBuilder {
query: None,
delta: None,
}
}
pub fn query(&self) -> Option<&str> { self.query.as_deref() }
pub fn delta(&self) -> Option<bool> { self.delta }
}
#[derive(Default)]
pub struct GetHistogramsParamsBuilder<'a> {
query: Option<Cow<'a, str>>,
delta: Option<bool>,
}
impl<'a> GetHistogramsParamsBuilder<'a> {
pub fn query(mut self, query: impl Into<Cow<'a, str>>) -> Self { self.query = Some(query.into()); self }
pub fn delta(mut self, delta: bool) -> Self { self.delta = Some(delta); self }
pub fn build(self) -> GetHistogramsParams<'a> {
GetHistogramsParams {
query: self.query,
delta: self.delta,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramsReturns<'a> {
histograms: Vec<Histogram<'a>>,
}
impl<'a> GetHistogramsReturns<'a> {
pub fn builder(histograms: Vec<Histogram<'a>>) -> GetHistogramsReturnsBuilder<'a> {
GetHistogramsReturnsBuilder {
histograms: histograms,
}
}
pub fn histograms(&self) -> &[Histogram<'a>] { &self.histograms }
}
pub struct GetHistogramsReturnsBuilder<'a> {
histograms: Vec<Histogram<'a>>,
}
impl<'a> GetHistogramsReturnsBuilder<'a> {
pub fn build(self) -> GetHistogramsReturns<'a> {
GetHistogramsReturns {
histograms: self.histograms,
}
}
}
impl<'a> GetHistogramsParams<'a> { pub const METHOD: &'static str = "Browser.getHistograms"; }
impl<'a> crate::CdpCommand<'a> for GetHistogramsParams<'a> {
const METHOD: &'static str = "Browser.getHistograms";
type Response = GetHistogramsReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramParams<'a> {
name: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none")]
delta: Option<bool>,
}
impl<'a> GetHistogramParams<'a> {
pub fn builder(name: impl Into<Cow<'a, str>>) -> GetHistogramParamsBuilder<'a> {
GetHistogramParamsBuilder {
name: name.into(),
delta: None,
}
}
pub fn name(&self) -> &str { self.name.as_ref() }
pub fn delta(&self) -> Option<bool> { self.delta }
}
pub struct GetHistogramParamsBuilder<'a> {
name: Cow<'a, str>,
delta: Option<bool>,
}
impl<'a> GetHistogramParamsBuilder<'a> {
pub fn delta(mut self, delta: bool) -> Self { self.delta = Some(delta); self }
pub fn build(self) -> GetHistogramParams<'a> {
GetHistogramParams {
name: self.name,
delta: self.delta,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramReturns<'a> {
histogram: Histogram<'a>,
}
impl<'a> GetHistogramReturns<'a> {
pub fn builder(histogram: Histogram<'a>) -> GetHistogramReturnsBuilder<'a> {
GetHistogramReturnsBuilder {
histogram: histogram,
}
}
pub fn histogram(&self) -> &Histogram<'a> { &self.histogram }
}
pub struct GetHistogramReturnsBuilder<'a> {
histogram: Histogram<'a>,
}
impl<'a> GetHistogramReturnsBuilder<'a> {
pub fn build(self) -> GetHistogramReturns<'a> {
GetHistogramReturns {
histogram: self.histogram,
}
}
}
impl<'a> GetHistogramParams<'a> { pub const METHOD: &'static str = "Browser.getHistogram"; }
impl<'a> crate::CdpCommand<'a> for GetHistogramParams<'a> {
const METHOD: &'static str = "Browser.getHistogram";
type Response = GetHistogramReturns<'a>;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowBoundsParams {
#[serde(rename = "windowId")]
window_id: WindowID,
}
impl GetWindowBoundsParams {
pub fn builder(window_id: WindowID) -> GetWindowBoundsParamsBuilder {
GetWindowBoundsParamsBuilder {
window_id: window_id,
}
}
pub fn window_id(&self) -> &WindowID { &self.window_id }
}
pub struct GetWindowBoundsParamsBuilder {
window_id: WindowID,
}
impl GetWindowBoundsParamsBuilder {
pub fn build(self) -> GetWindowBoundsParams {
GetWindowBoundsParams {
window_id: self.window_id,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowBoundsReturns {
bounds: Bounds,
}
impl GetWindowBoundsReturns {
pub fn builder(bounds: Bounds) -> GetWindowBoundsReturnsBuilder {
GetWindowBoundsReturnsBuilder {
bounds: bounds,
}
}
pub fn bounds(&self) -> &Bounds { &self.bounds }
}
pub struct GetWindowBoundsReturnsBuilder {
bounds: Bounds,
}
impl GetWindowBoundsReturnsBuilder {
pub fn build(self) -> GetWindowBoundsReturns {
GetWindowBoundsReturns {
bounds: self.bounds,
}
}
}
impl GetWindowBoundsParams { pub const METHOD: &'static str = "Browser.getWindowBounds"; }
impl<'a> crate::CdpCommand<'a> for GetWindowBoundsParams {
const METHOD: &'static str = "Browser.getWindowBounds";
type Response = GetWindowBoundsReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowForTargetParams<'a> {
#[serde(skip_serializing_if = "Option::is_none", rename = "targetId")]
target_id: Option<crate::target::TargetID<'a>>,
}
impl<'a> GetWindowForTargetParams<'a> {
pub fn builder() -> GetWindowForTargetParamsBuilder<'a> {
GetWindowForTargetParamsBuilder {
target_id: None,
}
}
pub fn target_id(&self) -> Option<&crate::target::TargetID<'a>> { self.target_id.as_ref() }
}
#[derive(Default)]
pub struct GetWindowForTargetParamsBuilder<'a> {
target_id: Option<crate::target::TargetID<'a>>,
}
impl<'a> GetWindowForTargetParamsBuilder<'a> {
pub fn target_id(mut self, target_id: crate::target::TargetID<'a>) -> Self { self.target_id = Some(target_id); self }
pub fn build(self) -> GetWindowForTargetParams<'a> {
GetWindowForTargetParams {
target_id: self.target_id,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowForTargetReturns {
#[serde(rename = "windowId")]
window_id: WindowID,
bounds: Bounds,
}
impl GetWindowForTargetReturns {
pub fn builder(window_id: WindowID, bounds: Bounds) -> GetWindowForTargetReturnsBuilder {
GetWindowForTargetReturnsBuilder {
window_id: window_id,
bounds: bounds,
}
}
pub fn window_id(&self) -> &WindowID { &self.window_id }
pub fn bounds(&self) -> &Bounds { &self.bounds }
}
pub struct GetWindowForTargetReturnsBuilder {
window_id: WindowID,
bounds: Bounds,
}
impl GetWindowForTargetReturnsBuilder {
pub fn build(self) -> GetWindowForTargetReturns {
GetWindowForTargetReturns {
window_id: self.window_id,
bounds: self.bounds,
}
}
}
impl<'a> GetWindowForTargetParams<'a> { pub const METHOD: &'static str = "Browser.getWindowForTarget"; }
impl<'a> crate::CdpCommand<'a> for GetWindowForTargetParams<'a> {
const METHOD: &'static str = "Browser.getWindowForTarget";
type Response = GetWindowForTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetWindowBoundsParams {
#[serde(rename = "windowId")]
window_id: WindowID,
bounds: Bounds,
}
impl SetWindowBoundsParams {
pub fn builder(window_id: WindowID, bounds: Bounds) -> SetWindowBoundsParamsBuilder {
SetWindowBoundsParamsBuilder {
window_id: window_id,
bounds: bounds,
}
}
pub fn window_id(&self) -> &WindowID { &self.window_id }
pub fn bounds(&self) -> &Bounds { &self.bounds }
}
pub struct SetWindowBoundsParamsBuilder {
window_id: WindowID,
bounds: Bounds,
}
impl SetWindowBoundsParamsBuilder {
pub fn build(self) -> SetWindowBoundsParams {
SetWindowBoundsParams {
window_id: self.window_id,
bounds: self.bounds,
}
}
}
impl SetWindowBoundsParams { pub const METHOD: &'static str = "Browser.setWindowBounds"; }
impl<'a> crate::CdpCommand<'a> for SetWindowBoundsParams {
const METHOD: &'static str = "Browser.setWindowBounds";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetContentsSizeParams {
#[serde(rename = "windowId")]
window_id: WindowID,
#[serde(skip_serializing_if = "Option::is_none")]
width: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
height: Option<i64>,
}
impl SetContentsSizeParams {
pub fn builder(window_id: WindowID) -> SetContentsSizeParamsBuilder {
SetContentsSizeParamsBuilder {
window_id: window_id,
width: None,
height: None,
}
}
pub fn window_id(&self) -> &WindowID { &self.window_id }
pub fn width(&self) -> Option<u64> { self.width }
pub fn height(&self) -> Option<i64> { self.height }
}
pub struct SetContentsSizeParamsBuilder {
window_id: WindowID,
width: Option<u64>,
height: Option<i64>,
}
impl SetContentsSizeParamsBuilder {
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 build(self) -> SetContentsSizeParams {
SetContentsSizeParams {
window_id: self.window_id,
width: self.width,
height: self.height,
}
}
}
impl SetContentsSizeParams { pub const METHOD: &'static str = "Browser.setContentsSize"; }
impl<'a> crate::CdpCommand<'a> for SetContentsSizeParams {
const METHOD: &'static str = "Browser.setContentsSize";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDockTileParams<'a> {
#[serde(skip_serializing_if = "Option::is_none", rename = "badgeLabel")]
badge_label: Option<Cow<'a, str>>,
#[serde(skip_serializing_if = "Option::is_none")]
image: Option<Cow<'a, str>>,
}
impl<'a> SetDockTileParams<'a> {
pub fn builder() -> SetDockTileParamsBuilder<'a> {
SetDockTileParamsBuilder {
badge_label: None,
image: None,
}
}
pub fn badge_label(&self) -> Option<&str> { self.badge_label.as_deref() }
pub fn image(&self) -> Option<&str> { self.image.as_deref() }
}
#[derive(Default)]
pub struct SetDockTileParamsBuilder<'a> {
badge_label: Option<Cow<'a, str>>,
image: Option<Cow<'a, str>>,
}
impl<'a> SetDockTileParamsBuilder<'a> {
pub fn badge_label(mut self, badge_label: impl Into<Cow<'a, str>>) -> Self { self.badge_label = Some(badge_label.into()); self }
pub fn image(mut self, image: impl Into<Cow<'a, str>>) -> Self { self.image = Some(image.into()); self }
pub fn build(self) -> SetDockTileParams<'a> {
SetDockTileParams {
badge_label: self.badge_label,
image: self.image,
}
}
}
impl<'a> SetDockTileParams<'a> { pub const METHOD: &'static str = "Browser.setDockTile"; }
impl<'a> crate::CdpCommand<'a> for SetDockTileParams<'a> {
const METHOD: &'static str = "Browser.setDockTile";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteBrowserCommandParams {
#[serde(rename = "commandId")]
command_id: BrowserCommandId,
}
impl ExecuteBrowserCommandParams {
pub fn builder(command_id: impl Into<BrowserCommandId>) -> ExecuteBrowserCommandParamsBuilder {
ExecuteBrowserCommandParamsBuilder {
command_id: command_id.into(),
}
}
pub fn command_id(&self) -> &BrowserCommandId { &self.command_id }
}
pub struct ExecuteBrowserCommandParamsBuilder {
command_id: BrowserCommandId,
}
impl ExecuteBrowserCommandParamsBuilder {
pub fn build(self) -> ExecuteBrowserCommandParams {
ExecuteBrowserCommandParams {
command_id: self.command_id,
}
}
}
impl ExecuteBrowserCommandParams { pub const METHOD: &'static str = "Browser.executeBrowserCommand"; }
impl<'a> crate::CdpCommand<'a> for ExecuteBrowserCommandParams {
const METHOD: &'static str = "Browser.executeBrowserCommand";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddPrivacySandboxEnrollmentOverrideParams<'a> {
url: Cow<'a, str>,
}
impl<'a> AddPrivacySandboxEnrollmentOverrideParams<'a> {
pub fn builder(url: impl Into<Cow<'a, str>>) -> AddPrivacySandboxEnrollmentOverrideParamsBuilder<'a> {
AddPrivacySandboxEnrollmentOverrideParamsBuilder {
url: url.into(),
}
}
pub fn url(&self) -> &str { self.url.as_ref() }
}
pub struct AddPrivacySandboxEnrollmentOverrideParamsBuilder<'a> {
url: Cow<'a, str>,
}
impl<'a> AddPrivacySandboxEnrollmentOverrideParamsBuilder<'a> {
pub fn build(self) -> AddPrivacySandboxEnrollmentOverrideParams<'a> {
AddPrivacySandboxEnrollmentOverrideParams {
url: self.url,
}
}
}
impl<'a> AddPrivacySandboxEnrollmentOverrideParams<'a> { pub const METHOD: &'static str = "Browser.addPrivacySandboxEnrollmentOverride"; }
impl<'a> crate::CdpCommand<'a> for AddPrivacySandboxEnrollmentOverrideParams<'a> {
const METHOD: &'static str = "Browser.addPrivacySandboxEnrollmentOverride";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddPrivacySandboxCoordinatorKeyConfigParams<'a> {
api: PrivacySandboxAPI,
#[serde(rename = "coordinatorOrigin")]
coordinator_origin: Cow<'a, str>,
#[serde(rename = "keyConfig")]
key_config: Cow<'a, str>,
#[serde(skip_serializing_if = "Option::is_none", rename = "browserContextId")]
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> AddPrivacySandboxCoordinatorKeyConfigParams<'a> {
pub fn builder(api: impl Into<PrivacySandboxAPI>, coordinator_origin: impl Into<Cow<'a, str>>, key_config: impl Into<Cow<'a, str>>) -> AddPrivacySandboxCoordinatorKeyConfigParamsBuilder<'a> {
AddPrivacySandboxCoordinatorKeyConfigParamsBuilder {
api: api.into(),
coordinator_origin: coordinator_origin.into(),
key_config: key_config.into(),
browser_context_id: None,
}
}
pub fn api(&self) -> &PrivacySandboxAPI { &self.api }
pub fn coordinator_origin(&self) -> &str { self.coordinator_origin.as_ref() }
pub fn key_config(&self) -> &str { self.key_config.as_ref() }
pub fn browser_context_id(&self) -> Option<&BrowserContextID<'a>> { self.browser_context_id.as_ref() }
}
pub struct AddPrivacySandboxCoordinatorKeyConfigParamsBuilder<'a> {
api: PrivacySandboxAPI,
coordinator_origin: Cow<'a, str>,
key_config: Cow<'a, str>,
browser_context_id: Option<BrowserContextID<'a>>,
}
impl<'a> AddPrivacySandboxCoordinatorKeyConfigParamsBuilder<'a> {
pub fn browser_context_id(mut self, browser_context_id: impl Into<BrowserContextID<'a>>) -> Self { self.browser_context_id = Some(browser_context_id.into()); self }
pub fn build(self) -> AddPrivacySandboxCoordinatorKeyConfigParams<'a> {
AddPrivacySandboxCoordinatorKeyConfigParams {
api: self.api,
coordinator_origin: self.coordinator_origin,
key_config: self.key_config,
browser_context_id: self.browser_context_id,
}
}
}
impl<'a> AddPrivacySandboxCoordinatorKeyConfigParams<'a> { pub const METHOD: &'static str = "Browser.addPrivacySandboxCoordinatorKeyConfig"; }
impl<'a> crate::CdpCommand<'a> for AddPrivacySandboxCoordinatorKeyConfigParams<'a> {
const METHOD: &'static str = "Browser.addPrivacySandboxCoordinatorKeyConfig";
type Response = crate::EmptyReturns;
}