Skip to main content

rustenium_cdp_definitions/browser_protocol/emulation/
command_builders.rs

1use super::commands::*;
2#[derive(Debug, Clone, Default)]
3pub struct ClearDeviceMetricsOverrideBuilder;
4impl ClearDeviceMetricsOverrideBuilder {
5    pub fn new() -> Self {
6        Self
7    }
8    pub fn build(self) -> ClearDeviceMetricsOverride {
9        ClearDeviceMetricsOverride {
10            method: ClearDeviceMetricsOverrideMethod::ClearDeviceMetricsOverride,
11            params: ClearDeviceMetricsOverrideParams {},
12        }
13    }
14}
15impl ClearDeviceMetricsOverride {
16    pub fn builder() -> ClearDeviceMetricsOverrideBuilder {
17        ClearDeviceMetricsOverrideBuilder
18    }
19}
20#[derive(Debug, Clone, Default)]
21pub struct ClearGeolocationOverrideBuilder;
22impl ClearGeolocationOverrideBuilder {
23    pub fn new() -> Self {
24        Self
25    }
26    pub fn build(self) -> ClearGeolocationOverride {
27        ClearGeolocationOverride {
28            method: ClearGeolocationOverrideMethod::ClearGeolocationOverride,
29            params: ClearGeolocationOverrideParams {},
30        }
31    }
32}
33impl ClearGeolocationOverride {
34    pub fn builder() -> ClearGeolocationOverrideBuilder {
35        ClearGeolocationOverrideBuilder
36    }
37}
38#[derive(Debug, Clone, Default)]
39pub struct ResetPageScaleFactorBuilder;
40impl ResetPageScaleFactorBuilder {
41    pub fn new() -> Self {
42        Self
43    }
44    pub fn build(self) -> ResetPageScaleFactor {
45        ResetPageScaleFactor {
46            method: ResetPageScaleFactorMethod::ResetPageScaleFactor,
47            params: ResetPageScaleFactorParams {},
48        }
49    }
50}
51impl ResetPageScaleFactor {
52    pub fn builder() -> ResetPageScaleFactorBuilder {
53        ResetPageScaleFactorBuilder
54    }
55}
56impl SetFocusEmulationEnabled {
57    pub fn builder() -> SetFocusEmulationEnabledBuilder {
58        <SetFocusEmulationEnabledBuilder as Default>::default()
59    }
60}
61#[derive(Default, Clone)]
62pub struct SetFocusEmulationEnabledBuilder {
63    enabled: Option<bool>,
64}
65impl SetFocusEmulationEnabledBuilder {
66    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
67        self.enabled = Some(enabled.into());
68        self
69    }
70    pub fn build(self) -> Result<SetFocusEmulationEnabled, String> {
71        Ok(SetFocusEmulationEnabled {
72            method: SetFocusEmulationEnabledMethod::SetFocusEmulationEnabled,
73            params: SetFocusEmulationEnabledParams {
74                enabled: self
75                    .enabled
76                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
77            },
78        })
79    }
80}
81impl SetAutoDarkModeOverride {
82    pub fn builder() -> SetAutoDarkModeOverrideBuilder {
83        <SetAutoDarkModeOverrideBuilder as Default>::default()
84    }
85}
86#[derive(Default, Clone)]
87pub struct SetAutoDarkModeOverrideBuilder {
88    enabled: Option<bool>,
89}
90impl SetAutoDarkModeOverrideBuilder {
91    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
92        self.enabled = Some(enabled.into());
93        self
94    }
95    pub fn build(self) -> SetAutoDarkModeOverride {
96        SetAutoDarkModeOverride {
97            method: SetAutoDarkModeOverrideMethod::SetAutoDarkModeOverride,
98            params: SetAutoDarkModeOverrideParams {
99                enabled: self.enabled,
100            },
101        }
102    }
103}
104impl SetCpuThrottlingRate {
105    pub fn builder() -> SetCpuThrottlingRateBuilder {
106        <SetCpuThrottlingRateBuilder as Default>::default()
107    }
108}
109#[derive(Default, Clone)]
110pub struct SetCpuThrottlingRateBuilder {
111    rate: Option<f64>,
112}
113impl SetCpuThrottlingRateBuilder {
114    pub fn rate(mut self, rate: impl Into<f64>) -> Self {
115        self.rate = Some(rate.into());
116        self
117    }
118    pub fn build(self) -> Result<SetCpuThrottlingRate, String> {
119        Ok(SetCpuThrottlingRate {
120            method: SetCpuThrottlingRateMethod::SetCpuThrottlingRate,
121            params: SetCpuThrottlingRateParams {
122                rate: self
123                    .rate
124                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(rate)))?,
125            },
126        })
127    }
128}
129impl SetDefaultBackgroundColorOverride {
130    pub fn builder() -> SetDefaultBackgroundColorOverrideBuilder {
131        <SetDefaultBackgroundColorOverrideBuilder as Default>::default()
132    }
133}
134#[derive(Default, Clone)]
135pub struct SetDefaultBackgroundColorOverrideBuilder {
136    color: Option<crate::browser_protocol::dom::types::Rgba>,
137}
138impl SetDefaultBackgroundColorOverrideBuilder {
139    pub fn color(mut self, color: impl Into<crate::browser_protocol::dom::types::Rgba>) -> Self {
140        self.color = Some(color.into());
141        self
142    }
143    pub fn build(self) -> SetDefaultBackgroundColorOverride {
144        SetDefaultBackgroundColorOverride {
145            method: SetDefaultBackgroundColorOverrideMethod::SetDefaultBackgroundColorOverride,
146            params: SetDefaultBackgroundColorOverrideParams { color: self.color },
147        }
148    }
149}
150impl SetSafeAreaInsetsOverride {
151    pub fn builder() -> SetSafeAreaInsetsOverrideBuilder {
152        <SetSafeAreaInsetsOverrideBuilder as Default>::default()
153    }
154}
155#[derive(Default, Clone)]
156pub struct SetSafeAreaInsetsOverrideBuilder {
157    insets: Option<super::types::SafeAreaInsets>,
158}
159impl SetSafeAreaInsetsOverrideBuilder {
160    pub fn insets(mut self, insets: impl Into<super::types::SafeAreaInsets>) -> Self {
161        self.insets = Some(insets.into());
162        self
163    }
164    pub fn build(self) -> Result<SetSafeAreaInsetsOverride, String> {
165        Ok(SetSafeAreaInsetsOverride {
166            method: SetSafeAreaInsetsOverrideMethod::SetSafeAreaInsetsOverride,
167            params: SetSafeAreaInsetsOverrideParams {
168                insets: self
169                    .insets
170                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(insets)))?,
171            },
172        })
173    }
174}
175impl SetDeviceMetricsOverride {
176    pub fn builder() -> SetDeviceMetricsOverrideBuilder {
177        <SetDeviceMetricsOverrideBuilder as Default>::default()
178    }
179}
180#[derive(Default, Clone)]
181pub struct SetDeviceMetricsOverrideBuilder {
182    width: Option<i64>,
183    height: Option<i64>,
184    device_scale_factor: Option<f64>,
185    mobile: Option<bool>,
186    scale: Option<f64>,
187    screen_width: Option<i64>,
188    screen_height: Option<i64>,
189    position_x: Option<i64>,
190    position_y: Option<i64>,
191    dont_set_visible_size: Option<bool>,
192    screen_orientation: Option<super::types::ScreenOrientation>,
193    viewport: Option<crate::browser_protocol::page::types::Viewport>,
194    scrollbar_type: Option<SetDeviceMetricsOverrideScrollbarType>,
195}
196impl SetDeviceMetricsOverrideBuilder {
197    pub fn width(mut self, width: impl Into<i64>) -> Self {
198        self.width = Some(width.into());
199        self
200    }
201    pub fn height(mut self, height: impl Into<i64>) -> Self {
202        self.height = Some(height.into());
203        self
204    }
205    pub fn device_scale_factor(mut self, device_scale_factor: impl Into<f64>) -> Self {
206        self.device_scale_factor = Some(device_scale_factor.into());
207        self
208    }
209    pub fn mobile(mut self, mobile: impl Into<bool>) -> Self {
210        self.mobile = Some(mobile.into());
211        self
212    }
213    pub fn scale(mut self, scale: impl Into<f64>) -> Self {
214        self.scale = Some(scale.into());
215        self
216    }
217    pub fn screen_width(mut self, screen_width: impl Into<i64>) -> Self {
218        self.screen_width = Some(screen_width.into());
219        self
220    }
221    pub fn screen_height(mut self, screen_height: impl Into<i64>) -> Self {
222        self.screen_height = Some(screen_height.into());
223        self
224    }
225    pub fn position_x(mut self, position_x: impl Into<i64>) -> Self {
226        self.position_x = Some(position_x.into());
227        self
228    }
229    pub fn position_y(mut self, position_y: impl Into<i64>) -> Self {
230        self.position_y = Some(position_y.into());
231        self
232    }
233    pub fn dont_set_visible_size(mut self, dont_set_visible_size: impl Into<bool>) -> Self {
234        self.dont_set_visible_size = Some(dont_set_visible_size.into());
235        self
236    }
237    pub fn screen_orientation(
238        mut self,
239        screen_orientation: impl Into<super::types::ScreenOrientation>,
240    ) -> Self {
241        self.screen_orientation = Some(screen_orientation.into());
242        self
243    }
244    pub fn viewport(
245        mut self,
246        viewport: impl Into<crate::browser_protocol::page::types::Viewport>,
247    ) -> Self {
248        self.viewport = Some(viewport.into());
249        self
250    }
251    pub fn scrollbar_type(
252        mut self,
253        scrollbar_type: impl Into<SetDeviceMetricsOverrideScrollbarType>,
254    ) -> Self {
255        self.scrollbar_type = Some(scrollbar_type.into());
256        self
257    }
258    pub fn build(self) -> Result<SetDeviceMetricsOverride, String> {
259        Ok(SetDeviceMetricsOverride {
260            method: SetDeviceMetricsOverrideMethod::SetDeviceMetricsOverride,
261            params: SetDeviceMetricsOverrideParams {
262                width: self
263                    .width
264                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(width)))?,
265                height: self
266                    .height
267                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(height)))?,
268                device_scale_factor: self.device_scale_factor.ok_or_else(|| {
269                    format!(
270                        "Field `{}` is mandatory.",
271                        std::stringify!(device_scale_factor)
272                    )
273                })?,
274                mobile: self
275                    .mobile
276                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(mobile)))?,
277                scale: self.scale,
278                screen_width: self.screen_width,
279                screen_height: self.screen_height,
280                position_x: self.position_x,
281                position_y: self.position_y,
282                dont_set_visible_size: self.dont_set_visible_size,
283                screen_orientation: self.screen_orientation,
284                viewport: self.viewport,
285                scrollbar_type: self.scrollbar_type,
286            },
287        })
288    }
289}
290impl SetDevicePostureOverride {
291    pub fn builder() -> SetDevicePostureOverrideBuilder {
292        <SetDevicePostureOverrideBuilder as Default>::default()
293    }
294}
295#[derive(Default, Clone)]
296pub struct SetDevicePostureOverrideBuilder {
297    posture: Option<super::types::DevicePosture>,
298}
299impl SetDevicePostureOverrideBuilder {
300    pub fn posture(mut self, posture: impl Into<super::types::DevicePosture>) -> Self {
301        self.posture = Some(posture.into());
302        self
303    }
304    pub fn build(self) -> Result<SetDevicePostureOverride, String> {
305        Ok(SetDevicePostureOverride {
306            method: SetDevicePostureOverrideMethod::SetDevicePostureOverride,
307            params: SetDevicePostureOverrideParams {
308                posture: self
309                    .posture
310                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(posture)))?,
311            },
312        })
313    }
314}
315#[derive(Debug, Clone, Default)]
316pub struct ClearDevicePostureOverrideBuilder;
317impl ClearDevicePostureOverrideBuilder {
318    pub fn new() -> Self {
319        Self
320    }
321    pub fn build(self) -> ClearDevicePostureOverride {
322        ClearDevicePostureOverride {
323            method: ClearDevicePostureOverrideMethod::ClearDevicePostureOverride,
324            params: ClearDevicePostureOverrideParams {},
325        }
326    }
327}
328impl ClearDevicePostureOverride {
329    pub fn builder() -> ClearDevicePostureOverrideBuilder {
330        ClearDevicePostureOverrideBuilder
331    }
332}
333impl SetDisplayFeaturesOverride {
334    pub fn builder() -> SetDisplayFeaturesOverrideBuilder {
335        <SetDisplayFeaturesOverrideBuilder as Default>::default()
336    }
337}
338#[derive(Default, Clone)]
339pub struct SetDisplayFeaturesOverrideBuilder {
340    features: Option<Vec<super::types::DisplayFeature>>,
341}
342impl SetDisplayFeaturesOverrideBuilder {
343    pub fn feature(mut self, feature: impl Into<super::types::DisplayFeature>) -> Self {
344        let v = self.features.get_or_insert(Vec::new());
345        v.push(feature.into());
346        self
347    }
348    pub fn features<I, S>(mut self, features: I) -> Self
349    where
350        I: IntoIterator<Item = S>,
351        S: Into<super::types::DisplayFeature>,
352    {
353        let v = self.features.get_or_insert(Vec::new());
354        for val in features {
355            v.push(val.into());
356        }
357        self
358    }
359    pub fn build(self) -> Result<SetDisplayFeaturesOverride, String> {
360        Ok(SetDisplayFeaturesOverride {
361            method: SetDisplayFeaturesOverrideMethod::SetDisplayFeaturesOverride,
362            params: SetDisplayFeaturesOverrideParams {
363                features: self.features.ok_or_else(|| {
364                    format!("Field `{}` is mandatory.", std::stringify!(features))
365                })?,
366            },
367        })
368    }
369}
370#[derive(Debug, Clone, Default)]
371pub struct ClearDisplayFeaturesOverrideBuilder;
372impl ClearDisplayFeaturesOverrideBuilder {
373    pub fn new() -> Self {
374        Self
375    }
376    pub fn build(self) -> ClearDisplayFeaturesOverride {
377        ClearDisplayFeaturesOverride {
378            method: ClearDisplayFeaturesOverrideMethod::ClearDisplayFeaturesOverride,
379            params: ClearDisplayFeaturesOverrideParams {},
380        }
381    }
382}
383impl ClearDisplayFeaturesOverride {
384    pub fn builder() -> ClearDisplayFeaturesOverrideBuilder {
385        ClearDisplayFeaturesOverrideBuilder
386    }
387}
388impl SetScrollbarsHidden {
389    pub fn builder() -> SetScrollbarsHiddenBuilder {
390        <SetScrollbarsHiddenBuilder as Default>::default()
391    }
392}
393#[derive(Default, Clone)]
394pub struct SetScrollbarsHiddenBuilder {
395    hidden: Option<bool>,
396}
397impl SetScrollbarsHiddenBuilder {
398    pub fn hidden(mut self, hidden: impl Into<bool>) -> Self {
399        self.hidden = Some(hidden.into());
400        self
401    }
402    pub fn build(self) -> Result<SetScrollbarsHidden, String> {
403        Ok(SetScrollbarsHidden {
404            method: SetScrollbarsHiddenMethod::SetScrollbarsHidden,
405            params: SetScrollbarsHiddenParams {
406                hidden: self
407                    .hidden
408                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(hidden)))?,
409            },
410        })
411    }
412}
413impl SetDocumentCookieDisabled {
414    pub fn builder() -> SetDocumentCookieDisabledBuilder {
415        <SetDocumentCookieDisabledBuilder as Default>::default()
416    }
417}
418#[derive(Default, Clone)]
419pub struct SetDocumentCookieDisabledBuilder {
420    disabled: Option<bool>,
421}
422impl SetDocumentCookieDisabledBuilder {
423    pub fn disabled(mut self, disabled: impl Into<bool>) -> Self {
424        self.disabled = Some(disabled.into());
425        self
426    }
427    pub fn build(self) -> Result<SetDocumentCookieDisabled, String> {
428        Ok(SetDocumentCookieDisabled {
429            method: SetDocumentCookieDisabledMethod::SetDocumentCookieDisabled,
430            params: SetDocumentCookieDisabledParams {
431                disabled: self.disabled.ok_or_else(|| {
432                    format!("Field `{}` is mandatory.", std::stringify!(disabled))
433                })?,
434            },
435        })
436    }
437}
438impl SetEmitTouchEventsForMouse {
439    pub fn builder() -> SetEmitTouchEventsForMouseBuilder {
440        <SetEmitTouchEventsForMouseBuilder as Default>::default()
441    }
442}
443#[derive(Default, Clone)]
444pub struct SetEmitTouchEventsForMouseBuilder {
445    enabled: Option<bool>,
446    configuration: Option<SetEmitTouchEventsForMouseConfiguration>,
447}
448impl SetEmitTouchEventsForMouseBuilder {
449    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
450        self.enabled = Some(enabled.into());
451        self
452    }
453    pub fn configuration(
454        mut self,
455        configuration: impl Into<SetEmitTouchEventsForMouseConfiguration>,
456    ) -> Self {
457        self.configuration = Some(configuration.into());
458        self
459    }
460    pub fn build(self) -> Result<SetEmitTouchEventsForMouse, String> {
461        Ok(SetEmitTouchEventsForMouse {
462            method: SetEmitTouchEventsForMouseMethod::SetEmitTouchEventsForMouse,
463            params: SetEmitTouchEventsForMouseParams {
464                enabled: self
465                    .enabled
466                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
467                configuration: self.configuration,
468            },
469        })
470    }
471}
472impl SetEmulatedMedia {
473    pub fn builder() -> SetEmulatedMediaBuilder {
474        <SetEmulatedMediaBuilder as Default>::default()
475    }
476}
477#[derive(Default, Clone)]
478pub struct SetEmulatedMediaBuilder {
479    media: Option<String>,
480    features: Option<Vec<super::types::MediaFeature>>,
481}
482impl SetEmulatedMediaBuilder {
483    pub fn media(mut self, media: impl Into<String>) -> Self {
484        self.media = Some(media.into());
485        self
486    }
487    pub fn feature(mut self, feature: impl Into<super::types::MediaFeature>) -> Self {
488        let v = self.features.get_or_insert(Vec::new());
489        v.push(feature.into());
490        self
491    }
492    pub fn features<I, S>(mut self, features: I) -> Self
493    where
494        I: IntoIterator<Item = S>,
495        S: Into<super::types::MediaFeature>,
496    {
497        let v = self.features.get_or_insert(Vec::new());
498        for val in features {
499            v.push(val.into());
500        }
501        self
502    }
503    pub fn build(self) -> SetEmulatedMedia {
504        SetEmulatedMedia {
505            method: SetEmulatedMediaMethod::SetEmulatedMedia,
506            params: SetEmulatedMediaParams {
507                media: self.media,
508                features: self.features,
509            },
510        }
511    }
512}
513impl SetEmulatedVisionDeficiency {
514    pub fn builder() -> SetEmulatedVisionDeficiencyBuilder {
515        <SetEmulatedVisionDeficiencyBuilder as Default>::default()
516    }
517}
518#[derive(Default, Clone)]
519pub struct SetEmulatedVisionDeficiencyBuilder {
520    r#type: Option<SetEmulatedVisionDeficiencyType>,
521}
522impl SetEmulatedVisionDeficiencyBuilder {
523    pub fn r#type(mut self, r#type: impl Into<SetEmulatedVisionDeficiencyType>) -> Self {
524        self.r#type = Some(r#type.into());
525        self
526    }
527    pub fn build(self) -> Result<SetEmulatedVisionDeficiency, String> {
528        Ok(SetEmulatedVisionDeficiency {
529            method: SetEmulatedVisionDeficiencyMethod::SetEmulatedVisionDeficiency,
530            params: SetEmulatedVisionDeficiencyParams {
531                r#type: self
532                    .r#type
533                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(r#type)))?,
534            },
535        })
536    }
537}
538impl SetEmulatedOsTextScale {
539    pub fn builder() -> SetEmulatedOsTextScaleBuilder {
540        <SetEmulatedOsTextScaleBuilder as Default>::default()
541    }
542}
543#[derive(Default, Clone)]
544pub struct SetEmulatedOsTextScaleBuilder {
545    scale: Option<f64>,
546}
547impl SetEmulatedOsTextScaleBuilder {
548    pub fn scale(mut self, scale: impl Into<f64>) -> Self {
549        self.scale = Some(scale.into());
550        self
551    }
552    pub fn build(self) -> SetEmulatedOsTextScale {
553        SetEmulatedOsTextScale {
554            method: SetEmulatedOsTextScaleMethod::SetEmulatedOsTextScale,
555            params: SetEmulatedOsTextScaleParams { scale: self.scale },
556        }
557    }
558}
559impl SetGeolocationOverride {
560    pub fn builder() -> SetGeolocationOverrideBuilder {
561        <SetGeolocationOverrideBuilder as Default>::default()
562    }
563}
564#[derive(Default, Clone)]
565pub struct SetGeolocationOverrideBuilder {
566    latitude: Option<f64>,
567    longitude: Option<f64>,
568    accuracy: Option<f64>,
569    altitude: Option<f64>,
570    altitude_accuracy: Option<f64>,
571    heading: Option<f64>,
572    speed: Option<f64>,
573}
574impl SetGeolocationOverrideBuilder {
575    pub fn latitude(mut self, latitude: impl Into<f64>) -> Self {
576        self.latitude = Some(latitude.into());
577        self
578    }
579    pub fn longitude(mut self, longitude: impl Into<f64>) -> Self {
580        self.longitude = Some(longitude.into());
581        self
582    }
583    pub fn accuracy(mut self, accuracy: impl Into<f64>) -> Self {
584        self.accuracy = Some(accuracy.into());
585        self
586    }
587    pub fn altitude(mut self, altitude: impl Into<f64>) -> Self {
588        self.altitude = Some(altitude.into());
589        self
590    }
591    pub fn altitude_accuracy(mut self, altitude_accuracy: impl Into<f64>) -> Self {
592        self.altitude_accuracy = Some(altitude_accuracy.into());
593        self
594    }
595    pub fn heading(mut self, heading: impl Into<f64>) -> Self {
596        self.heading = Some(heading.into());
597        self
598    }
599    pub fn speed(mut self, speed: impl Into<f64>) -> Self {
600        self.speed = Some(speed.into());
601        self
602    }
603    pub fn build(self) -> SetGeolocationOverride {
604        SetGeolocationOverride {
605            method: SetGeolocationOverrideMethod::SetGeolocationOverride,
606            params: SetGeolocationOverrideParams {
607                latitude: self.latitude,
608                longitude: self.longitude,
609                accuracy: self.accuracy,
610                altitude: self.altitude,
611                altitude_accuracy: self.altitude_accuracy,
612                heading: self.heading,
613                speed: self.speed,
614            },
615        }
616    }
617}
618impl GetOverriddenSensorInformation {
619    pub fn builder() -> GetOverriddenSensorInformationBuilder {
620        <GetOverriddenSensorInformationBuilder as Default>::default()
621    }
622}
623#[derive(Default, Clone)]
624pub struct GetOverriddenSensorInformationBuilder {
625    r#type: Option<super::types::SensorType>,
626}
627impl GetOverriddenSensorInformationBuilder {
628    pub fn r#type(mut self, r#type: impl Into<super::types::SensorType>) -> Self {
629        self.r#type = Some(r#type.into());
630        self
631    }
632    pub fn build(self) -> Result<GetOverriddenSensorInformation, String> {
633        Ok(GetOverriddenSensorInformation {
634            method: GetOverriddenSensorInformationMethod::GetOverriddenSensorInformation,
635            params: GetOverriddenSensorInformationParams {
636                r#type: self
637                    .r#type
638                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(r#type)))?,
639            },
640        })
641    }
642}
643impl SetSensorOverrideEnabled {
644    pub fn builder() -> SetSensorOverrideEnabledBuilder {
645        <SetSensorOverrideEnabledBuilder as Default>::default()
646    }
647}
648#[derive(Default, Clone)]
649pub struct SetSensorOverrideEnabledBuilder {
650    enabled: Option<bool>,
651    r#type: Option<super::types::SensorType>,
652    metadata: Option<super::types::SensorMetadata>,
653}
654impl SetSensorOverrideEnabledBuilder {
655    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
656        self.enabled = Some(enabled.into());
657        self
658    }
659    pub fn r#type(mut self, r#type: impl Into<super::types::SensorType>) -> Self {
660        self.r#type = Some(r#type.into());
661        self
662    }
663    pub fn metadata(mut self, metadata: impl Into<super::types::SensorMetadata>) -> Self {
664        self.metadata = Some(metadata.into());
665        self
666    }
667    pub fn build(self) -> Result<SetSensorOverrideEnabled, String> {
668        Ok(SetSensorOverrideEnabled {
669            method: SetSensorOverrideEnabledMethod::SetSensorOverrideEnabled,
670            params: SetSensorOverrideEnabledParams {
671                enabled: self
672                    .enabled
673                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
674                r#type: self
675                    .r#type
676                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(r#type)))?,
677                metadata: self.metadata,
678            },
679        })
680    }
681}
682impl SetSensorOverrideReadings {
683    pub fn builder() -> SetSensorOverrideReadingsBuilder {
684        <SetSensorOverrideReadingsBuilder as Default>::default()
685    }
686}
687#[derive(Default, Clone)]
688pub struct SetSensorOverrideReadingsBuilder {
689    r#type: Option<super::types::SensorType>,
690    reading: Option<super::types::SensorReading>,
691}
692impl SetSensorOverrideReadingsBuilder {
693    pub fn r#type(mut self, r#type: impl Into<super::types::SensorType>) -> Self {
694        self.r#type = Some(r#type.into());
695        self
696    }
697    pub fn reading(mut self, reading: impl Into<super::types::SensorReading>) -> Self {
698        self.reading = Some(reading.into());
699        self
700    }
701    pub fn build(self) -> Result<SetSensorOverrideReadings, String> {
702        Ok(SetSensorOverrideReadings {
703            method: SetSensorOverrideReadingsMethod::SetSensorOverrideReadings,
704            params: SetSensorOverrideReadingsParams {
705                r#type: self
706                    .r#type
707                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(r#type)))?,
708                reading: self
709                    .reading
710                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(reading)))?,
711            },
712        })
713    }
714}
715impl SetPressureSourceOverrideEnabled {
716    pub fn builder() -> SetPressureSourceOverrideEnabledBuilder {
717        <SetPressureSourceOverrideEnabledBuilder as Default>::default()
718    }
719}
720#[derive(Default, Clone)]
721pub struct SetPressureSourceOverrideEnabledBuilder {
722    enabled: Option<bool>,
723    source: Option<super::types::PressureSource>,
724    metadata: Option<super::types::PressureMetadata>,
725}
726impl SetPressureSourceOverrideEnabledBuilder {
727    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
728        self.enabled = Some(enabled.into());
729        self
730    }
731    pub fn source(mut self, source: impl Into<super::types::PressureSource>) -> Self {
732        self.source = Some(source.into());
733        self
734    }
735    pub fn metadata(mut self, metadata: impl Into<super::types::PressureMetadata>) -> Self {
736        self.metadata = Some(metadata.into());
737        self
738    }
739    pub fn build(self) -> Result<SetPressureSourceOverrideEnabled, String> {
740        Ok(SetPressureSourceOverrideEnabled {
741            method: SetPressureSourceOverrideEnabledMethod::SetPressureSourceOverrideEnabled,
742            params: SetPressureSourceOverrideEnabledParams {
743                enabled: self
744                    .enabled
745                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
746                source: self
747                    .source
748                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(source)))?,
749                metadata: self.metadata,
750            },
751        })
752    }
753}
754impl SetPressureStateOverride {
755    pub fn builder() -> SetPressureStateOverrideBuilder {
756        <SetPressureStateOverrideBuilder as Default>::default()
757    }
758}
759#[derive(Default, Clone)]
760pub struct SetPressureStateOverrideBuilder {
761    source: Option<super::types::PressureSource>,
762    state: Option<super::types::PressureState>,
763}
764impl SetPressureStateOverrideBuilder {
765    pub fn source(mut self, source: impl Into<super::types::PressureSource>) -> Self {
766        self.source = Some(source.into());
767        self
768    }
769    pub fn state(mut self, state: impl Into<super::types::PressureState>) -> Self {
770        self.state = Some(state.into());
771        self
772    }
773    pub fn build(self) -> Result<SetPressureStateOverride, String> {
774        Ok(SetPressureStateOverride {
775            method: SetPressureStateOverrideMethod::SetPressureStateOverride,
776            params: SetPressureStateOverrideParams {
777                source: self
778                    .source
779                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(source)))?,
780                state: self
781                    .state
782                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(state)))?,
783            },
784        })
785    }
786}
787impl SetPressureDataOverride {
788    pub fn builder() -> SetPressureDataOverrideBuilder {
789        <SetPressureDataOverrideBuilder as Default>::default()
790    }
791}
792#[derive(Default, Clone)]
793pub struct SetPressureDataOverrideBuilder {
794    source: Option<super::types::PressureSource>,
795    state: Option<super::types::PressureState>,
796    own_contribution_estimate: Option<f64>,
797}
798impl SetPressureDataOverrideBuilder {
799    pub fn source(mut self, source: impl Into<super::types::PressureSource>) -> Self {
800        self.source = Some(source.into());
801        self
802    }
803    pub fn state(mut self, state: impl Into<super::types::PressureState>) -> Self {
804        self.state = Some(state.into());
805        self
806    }
807    pub fn own_contribution_estimate(mut self, own_contribution_estimate: impl Into<f64>) -> Self {
808        self.own_contribution_estimate = Some(own_contribution_estimate.into());
809        self
810    }
811    pub fn build(self) -> Result<SetPressureDataOverride, String> {
812        Ok(SetPressureDataOverride {
813            method: SetPressureDataOverrideMethod::SetPressureDataOverride,
814            params: SetPressureDataOverrideParams {
815                source: self
816                    .source
817                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(source)))?,
818                state: self
819                    .state
820                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(state)))?,
821                own_contribution_estimate: self.own_contribution_estimate,
822            },
823        })
824    }
825}
826impl SetIdleOverride {
827    pub fn builder() -> SetIdleOverrideBuilder {
828        <SetIdleOverrideBuilder as Default>::default()
829    }
830}
831#[derive(Default, Clone)]
832pub struct SetIdleOverrideBuilder {
833    is_user_active: Option<bool>,
834    is_screen_unlocked: Option<bool>,
835}
836impl SetIdleOverrideBuilder {
837    pub fn is_user_active(mut self, is_user_active: impl Into<bool>) -> Self {
838        self.is_user_active = Some(is_user_active.into());
839        self
840    }
841    pub fn is_screen_unlocked(mut self, is_screen_unlocked: impl Into<bool>) -> Self {
842        self.is_screen_unlocked = Some(is_screen_unlocked.into());
843        self
844    }
845    pub fn build(self) -> Result<SetIdleOverride, String> {
846        Ok(SetIdleOverride {
847            method: SetIdleOverrideMethod::SetIdleOverride,
848            params: SetIdleOverrideParams {
849                is_user_active: self.is_user_active.ok_or_else(|| {
850                    format!("Field `{}` is mandatory.", std::stringify!(is_user_active))
851                })?,
852                is_screen_unlocked: self.is_screen_unlocked.ok_or_else(|| {
853                    format!(
854                        "Field `{}` is mandatory.",
855                        std::stringify!(is_screen_unlocked)
856                    )
857                })?,
858            },
859        })
860    }
861}
862#[derive(Debug, Clone, Default)]
863pub struct ClearIdleOverrideBuilder;
864impl ClearIdleOverrideBuilder {
865    pub fn new() -> Self {
866        Self
867    }
868    pub fn build(self) -> ClearIdleOverride {
869        ClearIdleOverride {
870            method: ClearIdleOverrideMethod::ClearIdleOverride,
871            params: ClearIdleOverrideParams {},
872        }
873    }
874}
875impl ClearIdleOverride {
876    pub fn builder() -> ClearIdleOverrideBuilder {
877        ClearIdleOverrideBuilder
878    }
879}
880impl SetPageScaleFactor {
881    pub fn builder() -> SetPageScaleFactorBuilder {
882        <SetPageScaleFactorBuilder as Default>::default()
883    }
884}
885#[derive(Default, Clone)]
886pub struct SetPageScaleFactorBuilder {
887    page_scale_factor: Option<f64>,
888}
889impl SetPageScaleFactorBuilder {
890    pub fn page_scale_factor(mut self, page_scale_factor: impl Into<f64>) -> Self {
891        self.page_scale_factor = Some(page_scale_factor.into());
892        self
893    }
894    pub fn build(self) -> Result<SetPageScaleFactor, String> {
895        Ok(SetPageScaleFactor {
896            method: SetPageScaleFactorMethod::SetPageScaleFactor,
897            params: SetPageScaleFactorParams {
898                page_scale_factor: self.page_scale_factor.ok_or_else(|| {
899                    format!(
900                        "Field `{}` is mandatory.",
901                        std::stringify!(page_scale_factor)
902                    )
903                })?,
904            },
905        })
906    }
907}
908impl SetScriptExecutionDisabled {
909    pub fn builder() -> SetScriptExecutionDisabledBuilder {
910        <SetScriptExecutionDisabledBuilder as Default>::default()
911    }
912}
913#[derive(Default, Clone)]
914pub struct SetScriptExecutionDisabledBuilder {
915    value: Option<bool>,
916}
917impl SetScriptExecutionDisabledBuilder {
918    pub fn value(mut self, value: impl Into<bool>) -> Self {
919        self.value = Some(value.into());
920        self
921    }
922    pub fn build(self) -> Result<SetScriptExecutionDisabled, String> {
923        Ok(SetScriptExecutionDisabled {
924            method: SetScriptExecutionDisabledMethod::SetScriptExecutionDisabled,
925            params: SetScriptExecutionDisabledParams {
926                value: self
927                    .value
928                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(value)))?,
929            },
930        })
931    }
932}
933impl SetTouchEmulationEnabled {
934    pub fn builder() -> SetTouchEmulationEnabledBuilder {
935        <SetTouchEmulationEnabledBuilder as Default>::default()
936    }
937}
938#[derive(Default, Clone)]
939pub struct SetTouchEmulationEnabledBuilder {
940    enabled: Option<bool>,
941    max_touch_points: Option<i64>,
942}
943impl SetTouchEmulationEnabledBuilder {
944    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
945        self.enabled = Some(enabled.into());
946        self
947    }
948    pub fn max_touch_points(mut self, max_touch_points: impl Into<i64>) -> Self {
949        self.max_touch_points = Some(max_touch_points.into());
950        self
951    }
952    pub fn build(self) -> Result<SetTouchEmulationEnabled, String> {
953        Ok(SetTouchEmulationEnabled {
954            method: SetTouchEmulationEnabledMethod::SetTouchEmulationEnabled,
955            params: SetTouchEmulationEnabledParams {
956                enabled: self
957                    .enabled
958                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
959                max_touch_points: self.max_touch_points,
960            },
961        })
962    }
963}
964impl SetVirtualTimePolicy {
965    pub fn builder() -> SetVirtualTimePolicyBuilder {
966        <SetVirtualTimePolicyBuilder as Default>::default()
967    }
968}
969#[derive(Default, Clone)]
970pub struct SetVirtualTimePolicyBuilder {
971    policy: Option<super::types::VirtualTimePolicy>,
972    budget: Option<f64>,
973    max_virtual_time_task_starvation_count: Option<i64>,
974    initial_virtual_time: Option<crate::browser_protocol::network::types::TimeSinceEpoch>,
975}
976impl SetVirtualTimePolicyBuilder {
977    pub fn policy(mut self, policy: impl Into<super::types::VirtualTimePolicy>) -> Self {
978        self.policy = Some(policy.into());
979        self
980    }
981    pub fn budget(mut self, budget: impl Into<f64>) -> Self {
982        self.budget = Some(budget.into());
983        self
984    }
985    pub fn max_virtual_time_task_starvation_count(
986        mut self,
987        max_virtual_time_task_starvation_count: impl Into<i64>,
988    ) -> Self {
989        self.max_virtual_time_task_starvation_count =
990            Some(max_virtual_time_task_starvation_count.into());
991        self
992    }
993    pub fn initial_virtual_time(
994        mut self,
995        initial_virtual_time: impl Into<crate::browser_protocol::network::types::TimeSinceEpoch>,
996    ) -> Self {
997        self.initial_virtual_time = Some(initial_virtual_time.into());
998        self
999    }
1000    pub fn build(self) -> Result<SetVirtualTimePolicy, String> {
1001        Ok(SetVirtualTimePolicy {
1002            method: SetVirtualTimePolicyMethod::SetVirtualTimePolicy,
1003            params: SetVirtualTimePolicyParams {
1004                policy: self
1005                    .policy
1006                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(policy)))?,
1007                budget: self.budget,
1008                max_virtual_time_task_starvation_count: self.max_virtual_time_task_starvation_count,
1009                initial_virtual_time: self.initial_virtual_time,
1010            },
1011        })
1012    }
1013}
1014impl SetLocaleOverride {
1015    pub fn builder() -> SetLocaleOverrideBuilder {
1016        <SetLocaleOverrideBuilder as Default>::default()
1017    }
1018}
1019#[derive(Default, Clone)]
1020pub struct SetLocaleOverrideBuilder {
1021    locale: Option<String>,
1022}
1023impl SetLocaleOverrideBuilder {
1024    pub fn locale(mut self, locale: impl Into<String>) -> Self {
1025        self.locale = Some(locale.into());
1026        self
1027    }
1028    pub fn build(self) -> SetLocaleOverride {
1029        SetLocaleOverride {
1030            method: SetLocaleOverrideMethod::SetLocaleOverride,
1031            params: SetLocaleOverrideParams {
1032                locale: self.locale,
1033            },
1034        }
1035    }
1036}
1037impl SetTimezoneOverride {
1038    pub fn builder() -> SetTimezoneOverrideBuilder {
1039        <SetTimezoneOverrideBuilder as Default>::default()
1040    }
1041}
1042#[derive(Default, Clone)]
1043pub struct SetTimezoneOverrideBuilder {
1044    timezone_id: Option<String>,
1045}
1046impl SetTimezoneOverrideBuilder {
1047    pub fn timezone_id(mut self, timezone_id: impl Into<String>) -> Self {
1048        self.timezone_id = Some(timezone_id.into());
1049        self
1050    }
1051    pub fn build(self) -> Result<SetTimezoneOverride, String> {
1052        Ok(SetTimezoneOverride {
1053            method: SetTimezoneOverrideMethod::SetTimezoneOverride,
1054            params: SetTimezoneOverrideParams {
1055                timezone_id: self.timezone_id.ok_or_else(|| {
1056                    format!("Field `{}` is mandatory.", std::stringify!(timezone_id))
1057                })?,
1058            },
1059        })
1060    }
1061}
1062impl SetDisabledImageTypes {
1063    pub fn builder() -> SetDisabledImageTypesBuilder {
1064        <SetDisabledImageTypesBuilder as Default>::default()
1065    }
1066}
1067#[derive(Default, Clone)]
1068pub struct SetDisabledImageTypesBuilder {
1069    image_types: Option<Vec<super::types::DisabledImageType>>,
1070}
1071impl SetDisabledImageTypesBuilder {
1072    pub fn image_type(mut self, image_type: impl Into<super::types::DisabledImageType>) -> Self {
1073        let v = self.image_types.get_or_insert(Vec::new());
1074        v.push(image_type.into());
1075        self
1076    }
1077    pub fn image_types<I, S>(mut self, image_types: I) -> Self
1078    where
1079        I: IntoIterator<Item = S>,
1080        S: Into<super::types::DisabledImageType>,
1081    {
1082        let v = self.image_types.get_or_insert(Vec::new());
1083        for val in image_types {
1084            v.push(val.into());
1085        }
1086        self
1087    }
1088    pub fn build(self) -> Result<SetDisabledImageTypes, String> {
1089        Ok(SetDisabledImageTypes {
1090            method: SetDisabledImageTypesMethod::SetDisabledImageTypes,
1091            params: SetDisabledImageTypesParams {
1092                image_types: self.image_types.ok_or_else(|| {
1093                    format!("Field `{}` is mandatory.", std::stringify!(image_types))
1094                })?,
1095            },
1096        })
1097    }
1098}
1099impl SetDataSaverOverride {
1100    pub fn builder() -> SetDataSaverOverrideBuilder {
1101        <SetDataSaverOverrideBuilder as Default>::default()
1102    }
1103}
1104#[derive(Default, Clone)]
1105pub struct SetDataSaverOverrideBuilder {
1106    data_saver_enabled: Option<bool>,
1107}
1108impl SetDataSaverOverrideBuilder {
1109    pub fn data_saver_enabled(mut self, data_saver_enabled: impl Into<bool>) -> Self {
1110        self.data_saver_enabled = Some(data_saver_enabled.into());
1111        self
1112    }
1113    pub fn build(self) -> SetDataSaverOverride {
1114        SetDataSaverOverride {
1115            method: SetDataSaverOverrideMethod::SetDataSaverOverride,
1116            params: SetDataSaverOverrideParams {
1117                data_saver_enabled: self.data_saver_enabled,
1118            },
1119        }
1120    }
1121}
1122impl SetHardwareConcurrencyOverride {
1123    pub fn builder() -> SetHardwareConcurrencyOverrideBuilder {
1124        <SetHardwareConcurrencyOverrideBuilder as Default>::default()
1125    }
1126}
1127#[derive(Default, Clone)]
1128pub struct SetHardwareConcurrencyOverrideBuilder {
1129    hardware_concurrency: Option<i64>,
1130}
1131impl SetHardwareConcurrencyOverrideBuilder {
1132    pub fn hardware_concurrency(mut self, hardware_concurrency: impl Into<i64>) -> Self {
1133        self.hardware_concurrency = Some(hardware_concurrency.into());
1134        self
1135    }
1136    pub fn build(self) -> Result<SetHardwareConcurrencyOverride, String> {
1137        Ok(SetHardwareConcurrencyOverride {
1138            method: SetHardwareConcurrencyOverrideMethod::SetHardwareConcurrencyOverride,
1139            params: SetHardwareConcurrencyOverrideParams {
1140                hardware_concurrency: self.hardware_concurrency.ok_or_else(|| {
1141                    format!(
1142                        "Field `{}` is mandatory.",
1143                        std::stringify!(hardware_concurrency)
1144                    )
1145                })?,
1146            },
1147        })
1148    }
1149}
1150impl SetUserAgentOverride {
1151    pub fn builder() -> SetUserAgentOverrideBuilder {
1152        <SetUserAgentOverrideBuilder as Default>::default()
1153    }
1154}
1155#[derive(Default, Clone)]
1156pub struct SetUserAgentOverrideBuilder {
1157    user_agent: Option<String>,
1158    accept_language: Option<String>,
1159    platform: Option<String>,
1160    user_agent_metadata: Option<super::types::UserAgentMetadata>,
1161}
1162impl SetUserAgentOverrideBuilder {
1163    pub fn user_agent(mut self, user_agent: impl Into<String>) -> Self {
1164        self.user_agent = Some(user_agent.into());
1165        self
1166    }
1167    pub fn accept_language(mut self, accept_language: impl Into<String>) -> Self {
1168        self.accept_language = Some(accept_language.into());
1169        self
1170    }
1171    pub fn platform(mut self, platform: impl Into<String>) -> Self {
1172        self.platform = Some(platform.into());
1173        self
1174    }
1175    pub fn user_agent_metadata(
1176        mut self,
1177        user_agent_metadata: impl Into<super::types::UserAgentMetadata>,
1178    ) -> Self {
1179        self.user_agent_metadata = Some(user_agent_metadata.into());
1180        self
1181    }
1182    pub fn build(self) -> Result<SetUserAgentOverride, String> {
1183        Ok(SetUserAgentOverride {
1184            method: SetUserAgentOverrideMethod::SetUserAgentOverride,
1185            params: SetUserAgentOverrideParams {
1186                user_agent: self.user_agent.ok_or_else(|| {
1187                    format!("Field `{}` is mandatory.", std::stringify!(user_agent))
1188                })?,
1189                accept_language: self.accept_language,
1190                platform: self.platform,
1191                user_agent_metadata: self.user_agent_metadata,
1192            },
1193        })
1194    }
1195}
1196impl SetAutomationOverride {
1197    pub fn builder() -> SetAutomationOverrideBuilder {
1198        <SetAutomationOverrideBuilder as Default>::default()
1199    }
1200}
1201#[derive(Default, Clone)]
1202pub struct SetAutomationOverrideBuilder {
1203    enabled: Option<bool>,
1204}
1205impl SetAutomationOverrideBuilder {
1206    pub fn enabled(mut self, enabled: impl Into<bool>) -> Self {
1207        self.enabled = Some(enabled.into());
1208        self
1209    }
1210    pub fn build(self) -> Result<SetAutomationOverride, String> {
1211        Ok(SetAutomationOverride {
1212            method: SetAutomationOverrideMethod::SetAutomationOverride,
1213            params: SetAutomationOverrideParams {
1214                enabled: self
1215                    .enabled
1216                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(enabled)))?,
1217            },
1218        })
1219    }
1220}
1221impl SetSmallViewportHeightDifferenceOverride {
1222    pub fn builder() -> SetSmallViewportHeightDifferenceOverrideBuilder {
1223        <SetSmallViewportHeightDifferenceOverrideBuilder as Default>::default()
1224    }
1225}
1226#[derive(Default, Clone)]
1227pub struct SetSmallViewportHeightDifferenceOverrideBuilder {
1228    difference: Option<i64>,
1229}
1230impl SetSmallViewportHeightDifferenceOverrideBuilder {
1231    pub fn difference(mut self, difference: impl Into<i64>) -> Self {
1232        self.difference = Some(difference.into());
1233        self
1234    }
1235    pub fn build(self) -> Result<SetSmallViewportHeightDifferenceOverride, String> {
1236        Ok (SetSmallViewportHeightDifferenceOverride { method : SetSmallViewportHeightDifferenceOverrideMethod :: SetSmallViewportHeightDifferenceOverride , params : SetSmallViewportHeightDifferenceOverrideParams { difference : self . difference . ok_or_else (|| format ! ("Field `{}` is mandatory." , std :: stringify ! (difference))) ? , } , })
1237    }
1238}
1239#[derive(Debug, Clone, Default)]
1240pub struct GetScreenInfosBuilder;
1241impl GetScreenInfosBuilder {
1242    pub fn new() -> Self {
1243        Self
1244    }
1245    pub fn build(self) -> GetScreenInfos {
1246        GetScreenInfos {
1247            method: GetScreenInfosMethod::GetScreenInfos,
1248            params: GetScreenInfosParams {},
1249        }
1250    }
1251}
1252impl GetScreenInfos {
1253    pub fn builder() -> GetScreenInfosBuilder {
1254        GetScreenInfosBuilder
1255    }
1256}
1257impl AddScreen {
1258    pub fn builder() -> AddScreenBuilder {
1259        <AddScreenBuilder as Default>::default()
1260    }
1261}
1262#[derive(Default, Clone)]
1263pub struct AddScreenBuilder {
1264    left: Option<i64>,
1265    top: Option<i64>,
1266    width: Option<i64>,
1267    height: Option<i64>,
1268    work_area_insets: Option<super::types::WorkAreaInsets>,
1269    device_pixel_ratio: Option<f64>,
1270    rotation: Option<i64>,
1271    color_depth: Option<i64>,
1272    label: Option<String>,
1273    is_internal: Option<bool>,
1274}
1275impl AddScreenBuilder {
1276    pub fn left(mut self, left: impl Into<i64>) -> Self {
1277        self.left = Some(left.into());
1278        self
1279    }
1280    pub fn top(mut self, top: impl Into<i64>) -> Self {
1281        self.top = Some(top.into());
1282        self
1283    }
1284    pub fn width(mut self, width: impl Into<i64>) -> Self {
1285        self.width = Some(width.into());
1286        self
1287    }
1288    pub fn height(mut self, height: impl Into<i64>) -> Self {
1289        self.height = Some(height.into());
1290        self
1291    }
1292    pub fn work_area_insets(
1293        mut self,
1294        work_area_insets: impl Into<super::types::WorkAreaInsets>,
1295    ) -> Self {
1296        self.work_area_insets = Some(work_area_insets.into());
1297        self
1298    }
1299    pub fn device_pixel_ratio(mut self, device_pixel_ratio: impl Into<f64>) -> Self {
1300        self.device_pixel_ratio = Some(device_pixel_ratio.into());
1301        self
1302    }
1303    pub fn rotation(mut self, rotation: impl Into<i64>) -> Self {
1304        self.rotation = Some(rotation.into());
1305        self
1306    }
1307    pub fn color_depth(mut self, color_depth: impl Into<i64>) -> Self {
1308        self.color_depth = Some(color_depth.into());
1309        self
1310    }
1311    pub fn label(mut self, label: impl Into<String>) -> Self {
1312        self.label = Some(label.into());
1313        self
1314    }
1315    pub fn is_internal(mut self, is_internal: impl Into<bool>) -> Self {
1316        self.is_internal = Some(is_internal.into());
1317        self
1318    }
1319    pub fn build(self) -> Result<AddScreen, String> {
1320        Ok(AddScreen {
1321            method: AddScreenMethod::AddScreen,
1322            params: AddScreenParams {
1323                left: self
1324                    .left
1325                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(left)))?,
1326                top: self
1327                    .top
1328                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(top)))?,
1329                width: self
1330                    .width
1331                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(width)))?,
1332                height: self
1333                    .height
1334                    .ok_or_else(|| format!("Field `{}` is mandatory.", std::stringify!(height)))?,
1335                work_area_insets: self.work_area_insets,
1336                device_pixel_ratio: self.device_pixel_ratio,
1337                rotation: self.rotation,
1338                color_depth: self.color_depth,
1339                label: self.label,
1340                is_internal: self.is_internal,
1341            },
1342        })
1343    }
1344}
1345impl RemoveScreen {
1346    pub fn builder() -> RemoveScreenBuilder {
1347        <RemoveScreenBuilder as Default>::default()
1348    }
1349}
1350#[derive(Default, Clone)]
1351pub struct RemoveScreenBuilder {
1352    screen_id: Option<super::types::ScreenId>,
1353}
1354impl RemoveScreenBuilder {
1355    pub fn screen_id(mut self, screen_id: impl Into<super::types::ScreenId>) -> Self {
1356        self.screen_id = Some(screen_id.into());
1357        self
1358    }
1359    pub fn build(self) -> Result<RemoveScreen, String> {
1360        Ok(RemoveScreen {
1361            method: RemoveScreenMethod::RemoveScreen,
1362            params: RemoveScreenParams {
1363                screen_id: self.screen_id.ok_or_else(|| {
1364                    format!("Field `{}` is mandatory.", std::stringify!(screen_id))
1365                })?,
1366            },
1367        })
1368    }
1369}