Skip to main content

rustenium_cdp_definitions/browser_protocol/io/
command_builders.rs

1use super::commands::*;
2impl Close {
3    pub fn builder() -> CloseBuilder {
4        <CloseBuilder as Default>::default()
5    }
6}
7#[derive(Default, Clone)]
8pub struct CloseBuilder {
9    handle: Option<super::types::StreamHandle>,
10}
11impl CloseBuilder {
12    pub fn handle(mut self, handle: impl Into<super::types::StreamHandle>) -> Self {
13        self.handle = Some(handle.into());
14        self
15    }
16    pub fn build(self) -> Result<Close, String> {
17        Ok(Close {
18            method: CloseMethod::Close,
19            params: CloseParams {
20                handle: self
21                    .handle
22                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(handle)))?,
23            },
24        })
25    }
26}
27impl Read {
28    pub fn builder() -> ReadBuilder {
29        <ReadBuilder as Default>::default()
30    }
31}
32#[derive(Default, Clone)]
33pub struct ReadBuilder {
34    handle: Option<super::types::StreamHandle>,
35    offset: Option<i64>,
36    size: Option<i64>,
37}
38impl ReadBuilder {
39    pub fn handle(mut self, handle: impl Into<super::types::StreamHandle>) -> Self {
40        self.handle = Some(handle.into());
41        self
42    }
43    pub fn offset(mut self, offset: impl Into<i64>) -> Self {
44        self.offset = Some(offset.into());
45        self
46    }
47    pub fn size(mut self, size: impl Into<i64>) -> Self {
48        self.size = Some(size.into());
49        self
50    }
51    pub fn build(self) -> Result<Read, String> {
52        Ok(Read {
53            method: ReadMethod::Read,
54            params: ReadParams {
55                handle: self
56                    .handle
57                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(handle)))?,
58                offset: self.offset,
59                size: self.size,
60            },
61        })
62    }
63}
64impl ResolveBlob {
65    pub fn builder() -> ResolveBlobBuilder {
66        <ResolveBlobBuilder as Default>::default()
67    }
68}
69#[derive(Default, Clone)]
70pub struct ResolveBlobBuilder {
71    object_id: Option<crate::js_protocol::runtime::types::RemoteObjectId>,
72}
73impl ResolveBlobBuilder {
74    pub fn object_id(
75        mut self,
76        object_id: impl Into<crate::js_protocol::runtime::types::RemoteObjectId>,
77    ) -> Self {
78        self.object_id = Some(object_id.into());
79        self
80    }
81    pub fn build(self) -> Result<ResolveBlob, String> {
82        Ok(ResolveBlob {
83            method: ResolveBlobMethod::ResolveBlob,
84            params: ResolveBlobParams {
85                object_id: self.object_id.ok_or_else(|| {
86                    format!("Field `{}` is mandatory.", std::stringify!(object_id))
87                })?,
88            },
89        })
90    }
91}