browser_protocol/cachestorage/
mod.rs1use serde::{Serialize, Deserialize};
2use serde_json::Value as JsonValue;
3
4pub type CacheId = String;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11pub enum CachedResponseType {
12 #[default]
13 Basic,
14 Cors,
15 Default,
16 Error,
17 OpaqueResponse,
18 OpaqueRedirect,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, Default)]
24#[serde(rename_all = "camelCase")]
25pub struct DataEntry {
26 pub requestURL: String,
29 pub requestMethod: String,
32 pub requestHeaders: Vec<Header>,
35 pub responseTime: f64,
38 pub responseStatus: i64,
41 pub responseStatusText: String,
44 pub responseType: CachedResponseType,
47 pub responseHeaders: Vec<Header>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, Default)]
55#[serde(rename_all = "camelCase")]
56pub struct Cache {
57 pub cacheId: CacheId,
60 pub securityOrigin: String,
63 pub storageKey: String,
66 #[serde(skip_serializing_if = "Option::is_none")]
69 pub storageBucket: Option<crate::storage::StorageBucket>,
70 pub cacheName: String,
73}
74
75
76#[derive(Debug, Clone, Serialize, Deserialize, Default)]
77#[serde(rename_all = "camelCase")]
78pub struct Header {
79
80 pub name: String,
81
82 pub value: String,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize, Default)]
88#[serde(rename_all = "camelCase")]
89pub struct CachedResponse {
90 pub body: String,
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize, Default)]
98#[serde(rename_all = "camelCase")]
99pub struct DeleteCacheParams {
100 pub cacheId: CacheId,
103}
104
105impl DeleteCacheParams { pub const METHOD: &'static str = "CacheStorage.deleteCache"; }
106
107impl crate::CdpCommand for DeleteCacheParams {
108 const METHOD: &'static str = "CacheStorage.deleteCache";
109 type Response = crate::EmptyReturns;
110}
111
112#[derive(Debug, Clone, Serialize, Deserialize, Default)]
115#[serde(rename_all = "camelCase")]
116pub struct DeleteEntryParams {
117 pub cacheId: CacheId,
120 pub request: String,
123}
124
125impl DeleteEntryParams { pub const METHOD: &'static str = "CacheStorage.deleteEntry"; }
126
127impl crate::CdpCommand for DeleteEntryParams {
128 const METHOD: &'static str = "CacheStorage.deleteEntry";
129 type Response = crate::EmptyReturns;
130}
131
132#[derive(Debug, Clone, Serialize, Deserialize, Default)]
135#[serde(rename_all = "camelCase")]
136pub struct RequestCacheNamesParams {
137 #[serde(skip_serializing_if = "Option::is_none")]
141 pub securityOrigin: Option<String>,
142 #[serde(skip_serializing_if = "Option::is_none")]
145 pub storageKey: Option<String>,
146 #[serde(skip_serializing_if = "Option::is_none")]
149 pub storageBucket: Option<crate::storage::StorageBucket>,
150}
151
152#[derive(Debug, Clone, Serialize, Deserialize, Default)]
155#[serde(rename_all = "camelCase")]
156pub struct RequestCacheNamesReturns {
157 pub caches: Vec<Cache>,
160}
161
162impl RequestCacheNamesParams { pub const METHOD: &'static str = "CacheStorage.requestCacheNames"; }
163
164impl crate::CdpCommand for RequestCacheNamesParams {
165 const METHOD: &'static str = "CacheStorage.requestCacheNames";
166 type Response = RequestCacheNamesReturns;
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize, Default)]
172#[serde(rename_all = "camelCase")]
173pub struct RequestCachedResponseParams {
174 pub cacheId: CacheId,
177 pub requestURL: String,
180 pub requestHeaders: Vec<Header>,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize, Default)]
188#[serde(rename_all = "camelCase")]
189pub struct RequestCachedResponseReturns {
190 pub response: CachedResponse,
193}
194
195impl RequestCachedResponseParams { pub const METHOD: &'static str = "CacheStorage.requestCachedResponse"; }
196
197impl crate::CdpCommand for RequestCachedResponseParams {
198 const METHOD: &'static str = "CacheStorage.requestCachedResponse";
199 type Response = RequestCachedResponseReturns;
200}
201
202#[derive(Debug, Clone, Serialize, Deserialize, Default)]
205#[serde(rename_all = "camelCase")]
206pub struct RequestEntriesParams {
207 pub cacheId: CacheId,
210 #[serde(skip_serializing_if = "Option::is_none")]
213 pub skipCount: Option<u64>,
214 #[serde(skip_serializing_if = "Option::is_none")]
217 pub pageSize: Option<u64>,
218 #[serde(skip_serializing_if = "Option::is_none")]
221 pub pathFilter: Option<String>,
222}
223
224#[derive(Debug, Clone, Serialize, Deserialize, Default)]
227#[serde(rename_all = "camelCase")]
228pub struct RequestEntriesReturns {
229 pub cacheDataEntries: Vec<DataEntry>,
232 pub returnCount: f64,
236}
237
238impl RequestEntriesParams { pub const METHOD: &'static str = "CacheStorage.requestEntries"; }
239
240impl crate::CdpCommand for RequestEntriesParams {
241 const METHOD: &'static str = "CacheStorage.requestEntries";
242 type Response = RequestEntriesReturns;
243}