use serde::{Deserialize, Serialize};
pub use super::network_cookies::{Cookie, CookieParam, CookieSameSite};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetCookiesParams {
pub cookies: Vec<CookieParam>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_context_id: Option<String>,
}
impl SetCookiesParams {
pub fn new(cookies: Vec<CookieParam>) -> Self {
Self {
cookies,
browser_context_id: None,
}
}
#[must_use]
pub fn browser_context_id(mut self, id: impl Into<String>) -> Self {
self.browser_context_id = Some(id.into());
self
}
}
#[derive(Debug, Clone, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetCookiesParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_context_id: Option<String>,
}
impl GetCookiesParams {
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn browser_context_id(mut self, id: impl Into<String>) -> Self {
self.browser_context_id = Some(id.into());
self
}
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetCookiesResult {
pub cookies: Vec<Cookie>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteCookiesParams {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub domain: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub partition_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_context_id: Option<String>,
}
impl DeleteCookiesParams {
pub fn new(name: impl Into<String>) -> Self {
Self {
name: name.into(),
url: None,
domain: None,
path: None,
partition_key: None,
browser_context_id: None,
}
}
#[must_use]
pub fn url(mut self, url: impl Into<String>) -> Self {
self.url = Some(url.into());
self
}
#[must_use]
pub fn domain(mut self, domain: impl Into<String>) -> Self {
self.domain = Some(domain.into());
self
}
#[must_use]
pub fn path(mut self, path: impl Into<String>) -> Self {
self.path = Some(path.into());
self
}
#[must_use]
pub fn browser_context_id(mut self, id: impl Into<String>) -> Self {
self.browser_context_id = Some(id.into());
self
}
}
#[derive(Debug, Clone, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClearCookiesParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_context_id: Option<String>,
}
impl ClearCookiesParams {
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn browser_context_id(mut self, id: impl Into<String>) -> Self {
self.browser_context_id = Some(id.into());
self
}
}