rustenium_bidi_commands/emulation/
types.rs1use serde::{Serialize, Deserialize};
4use serde_valid::Validate;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(untagged)]
8pub enum ForcedColorsModeTheme {
9 #[serde(rename = "light")]
10 Light,
11 #[serde(rename = "dark")]
12 Dark,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
16pub struct GeolocationCoordinates {
17 #[serde(rename = "latitude")]
18 #[validate(minimum = -90.0)]
19 #[validate(maximum = 90.0)]
20 pub latitude: f64,
21 #[serde(rename = "longitude")]
22 #[validate(minimum = -180.0)]
23 #[validate(maximum = 180.0)]
24 pub longitude: f64,
25 #[serde(rename = "accuracy")]
26 #[serde(skip_serializing_if = "Option::is_none")]
27 #[validate(minimum = 0.0)]
28 pub accuracy: Option<f64>,
29 #[serde(rename = "altitude")]
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub altitude: Option<Option<f64>>,
32 #[serde(rename = "altitudeAccuracy")]
33 #[serde(skip_serializing_if = "Option::is_none")]
34 #[validate(minimum = 0.0)]
35 pub altitude_accuracy: Option<Option<f64>>,
36 #[serde(rename = "heading")]
37 #[serde(skip_serializing_if = "Option::is_none")]
38 #[validate(minimum = 0.0)]
39 #[validate(maximum = 360.0)]
40 pub heading: Option<Option<f64>>,
41 #[serde(rename = "speed")]
42 #[serde(skip_serializing_if = "Option::is_none")]
43 #[validate(minimum = 0.0)]
44 pub speed: Option<Option<f64>>,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum PositionUnavailableEnum {
50 #[serde(rename = "positionUnavailable")]
51 PositionUnavailable,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct GeolocationPositionError {
56 #[serde(rename = "type")]
57 pub r#type: PositionUnavailableEnum,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum CoordinatesErrorUnion {
63 GeolocationCoordinates(GeolocationCoordinates),
64 GeolocationPositionError(GeolocationPositionError),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum OfflineEnum {
70 #[serde(rename = "offline")]
71 Offline,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
75pub struct NetworkConditionsOffline {
76 #[serde(rename = "type")]
77 pub r#type: OfflineEnum,
78}
79
80pub type NetworkConditions = NetworkConditionsOffline;
81
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum ScreenOrientationNatural {
86 #[serde(rename = "portrait")]
87 Portrait,
88 #[serde(rename = "landscape")]
89 Landscape,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize)]
93#[serde(untagged)]
94pub enum ScreenOrientationType {
95 #[serde(rename = "portrait-primary")]
96 PortraitPrimary,
97 #[serde(rename = "portrait-secondary")]
98 PortraitSecondary,
99 #[serde(rename = "landscape-primary")]
100 LandscapePrimary,
101 #[serde(rename = "landscape-secondary")]
102 LandscapeSecondary,
103}
104
105#[derive(Debug, Clone, Serialize, Deserialize)]
106pub struct ScreenOrientation {
107 #[serde(rename = "natural")]
108 pub natural: ScreenOrientationNatural,
109 #[serde(rename = "type")]
110 pub r#type: ScreenOrientationType,
111}
112