use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
pub type CacheId = String;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum CachedResponseType {
#[default]
Basic,
Cors,
Default,
Error,
OpaqueResponse,
OpaqueRedirect,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DataEntry {
pub requestURL: String,
pub requestMethod: String,
pub requestHeaders: Vec<Header>,
pub responseTime: f64,
pub responseStatus: i64,
pub responseStatusText: String,
pub responseType: CachedResponseType,
pub responseHeaders: Vec<Header>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Cache {
pub cacheId: CacheId,
pub securityOrigin: String,
pub storageKey: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub storageBucket: Option<crate::storage::StorageBucket>,
pub cacheName: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Header {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CachedResponse {
pub body: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeleteCacheParams {
pub cacheId: CacheId,
}
impl DeleteCacheParams { pub const METHOD: &'static str = "CacheStorage.deleteCache"; }
impl crate::CdpCommand for DeleteCacheParams {
const METHOD: &'static str = "CacheStorage.deleteCache";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeleteEntryParams {
pub cacheId: CacheId,
pub request: String,
}
impl DeleteEntryParams { pub const METHOD: &'static str = "CacheStorage.deleteEntry"; }
impl crate::CdpCommand for DeleteEntryParams {
const METHOD: &'static str = "CacheStorage.deleteEntry";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestCacheNamesParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub securityOrigin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storageKey: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storageBucket: Option<crate::storage::StorageBucket>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestCacheNamesReturns {
pub caches: Vec<Cache>,
}
impl RequestCacheNamesParams { pub const METHOD: &'static str = "CacheStorage.requestCacheNames"; }
impl crate::CdpCommand for RequestCacheNamesParams {
const METHOD: &'static str = "CacheStorage.requestCacheNames";
type Response = RequestCacheNamesReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestCachedResponseParams {
pub cacheId: CacheId,
pub requestURL: String,
pub requestHeaders: Vec<Header>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestCachedResponseReturns {
pub response: CachedResponse,
}
impl RequestCachedResponseParams { pub const METHOD: &'static str = "CacheStorage.requestCachedResponse"; }
impl crate::CdpCommand for RequestCachedResponseParams {
const METHOD: &'static str = "CacheStorage.requestCachedResponse";
type Response = RequestCachedResponseReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestEntriesParams {
pub cacheId: CacheId,
#[serde(skip_serializing_if = "Option::is_none")]
pub skipCount: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pageSize: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pathFilter: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RequestEntriesReturns {
pub cacheDataEntries: Vec<DataEntry>,
pub returnCount: f64,
}
impl RequestEntriesParams { pub const METHOD: &'static str = "CacheStorage.requestEntries"; }
impl crate::CdpCommand for RequestEntriesParams {
const METHOD: &'static str = "CacheStorage.requestEntries";
type Response = RequestEntriesReturns;
}