Skip to main content

rustenium_cdp_definitions/browser_protocol/system_info/
command_builders.rs

1use super::commands::*;
2#[derive(Debug, Clone, Default)]
3pub struct GetInfoBuilder;
4impl GetInfoBuilder {
5    pub fn new() -> Self {
6        Self
7    }
8    pub fn build(self) -> GetInfo {
9        GetInfo {
10            method: GetInfoMethod::GetInfo,
11            params: GetInfoParams {},
12        }
13    }
14}
15impl GetInfo {
16    pub fn builder() -> GetInfoBuilder {
17        GetInfoBuilder
18    }
19}
20impl GetFeatureState {
21    pub fn builder() -> GetFeatureStateBuilder {
22        <GetFeatureStateBuilder as Default>::default()
23    }
24}
25#[derive(Default, Clone)]
26pub struct GetFeatureStateBuilder {
27    feature_state: Option<String>,
28}
29impl GetFeatureStateBuilder {
30    pub fn feature_state(mut self, feature_state: impl Into<String>) -> Self {
31        self.feature_state = Some(feature_state.into());
32        self
33    }
34    pub fn build(self) -> Result<GetFeatureState, String> {
35        Ok(GetFeatureState {
36            method: GetFeatureStateMethod::GetFeatureState,
37            params: GetFeatureStateParams {
38                feature_state: self.feature_state.ok_or_else(|| {
39                    format!("Field `{}` is mandatory.", std::stringify!(feature_state))
40                })?,
41            },
42        })
43    }
44}
45#[derive(Debug, Clone, Default)]
46pub struct GetProcessInfoBuilder;
47impl GetProcessInfoBuilder {
48    pub fn new() -> Self {
49        Self
50    }
51    pub fn build(self) -> GetProcessInfo {
52        GetProcessInfo {
53            method: GetProcessInfoMethod::GetProcessInfo,
54            params: GetProcessInfoParams {},
55        }
56    }
57}
58impl GetProcessInfo {
59    pub fn builder() -> GetProcessInfoBuilder {
60        GetProcessInfoBuilder
61    }
62}