Skip to main content

rustenium_bidi_definitions/storage/
command_builders.rs

1use super::commands::*;
2impl GetCookies {
3    pub fn builder() -> GetCookiesBuilder {
4        <GetCookiesBuilder as Default>::default()
5    }
6}
7#[derive(Default, Clone)]
8pub struct GetCookiesBuilder {
9    filter: Option<super::types::CookieFilter>,
10    partition: Option<super::types::PartitionDescriptor>,
11}
12impl GetCookiesBuilder {
13    pub fn filter(mut self, filter: impl Into<super::types::CookieFilter>) -> Self {
14        self.filter = Some(filter.into());
15        self
16    }
17    pub fn partition(mut self, partition: impl Into<super::types::PartitionDescriptor>) -> Self {
18        self.partition = Some(partition.into());
19        self
20    }
21    pub fn build(self) -> GetCookies {
22        GetCookies {
23            method: GetCookiesMethod::GetCookies,
24            params: GetCookiesParams {
25                filter: self.filter,
26                partition: self.partition,
27            },
28        }
29    }
30}
31impl SetCookie {
32    pub fn builder() -> SetCookieBuilder {
33        <SetCookieBuilder as Default>::default()
34    }
35}
36#[derive(Default, Clone)]
37pub struct SetCookieBuilder {
38    cookie: Option<super::types::PartialCookie>,
39    partition: Option<super::types::PartitionDescriptor>,
40}
41impl SetCookieBuilder {
42    pub fn cookie(mut self, cookie: impl Into<super::types::PartialCookie>) -> Self {
43        self.cookie = Some(cookie.into());
44        self
45    }
46    pub fn partition(mut self, partition: impl Into<super::types::PartitionDescriptor>) -> Self {
47        self.partition = Some(partition.into());
48        self
49    }
50    pub fn build(self) -> Result<SetCookie, String> {
51        Ok(SetCookie {
52            method: SetCookieMethod::SetCookie,
53            params: SetCookieParams {
54                cookie: self
55                    .cookie
56                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(cookie)))?,
57                partition: self.partition,
58            },
59        })
60    }
61}
62impl DeleteCookies {
63    pub fn builder() -> DeleteCookiesBuilder {
64        <DeleteCookiesBuilder as Default>::default()
65    }
66}
67#[derive(Default, Clone)]
68pub struct DeleteCookiesBuilder {
69    filter: Option<super::types::CookieFilter>,
70    partition: Option<super::types::PartitionDescriptor>,
71}
72impl DeleteCookiesBuilder {
73    pub fn filter(mut self, filter: impl Into<super::types::CookieFilter>) -> Self {
74        self.filter = Some(filter.into());
75        self
76    }
77    pub fn partition(mut self, partition: impl Into<super::types::PartitionDescriptor>) -> Self {
78        self.partition = Some(partition.into());
79        self
80    }
81    pub fn build(self) -> DeleteCookies {
82        DeleteCookies {
83            method: DeleteCookiesMethod::DeleteCookies,
84            params: DeleteCookiesParams {
85                filter: self.filter,
86                partition: self.partition,
87            },
88        }
89    }
90}