rustenium_bidi_definitions/emulation/
types.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
3pub enum ForcedColorsModeTheme {
4 #[serde(rename = "light")]
5 Light,
6 #[serde(rename = "dark")]
7 Dark,
8}
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, serde_valid :: Validate)]
10pub struct GeolocationCoordinates {
11 #[serde(rename = "latitude")]
12 pub latitude: f64,
13 #[serde(rename = "longitude")]
14 pub longitude: f64,
15 #[serde(rename = "accuracy")]
16 #[serde(skip_serializing_if = "Option::is_none")]
17 #[serde(default = "default_geolocation_coordinates_accuracy")]
18 #[validate(minimum = 0f64)]
19 pub accuracy: Option<f64>,
20 #[serde(rename = "altitude")]
21 #[serde(skip_serializing_if = "Option::is_none")]
22 #[serde(default)]
23 pub altitude: Option<f64>,
24 #[serde(rename = "altitudeAccuracy")]
25 #[serde(skip_serializing_if = "Option::is_none")]
26 #[serde(default)]
27 #[validate(minimum = 0f64)]
28 pub altitude_accuracy: Option<f64>,
29 #[serde(rename = "heading")]
30 #[serde(skip_serializing_if = "Option::is_none")]
31 #[serde(default)]
32 pub heading: Option<f64>,
33 #[serde(rename = "speed")]
34 #[serde(skip_serializing_if = "Option::is_none")]
35 #[serde(default)]
36 #[validate(minimum = 0f64)]
37 pub speed: Option<f64>,
38}
39fn default_geolocation_coordinates_accuracy() -> Option<f64> {
40 Some(1f64)
41}
42impl GeolocationCoordinates {
43 pub fn new(latitude: impl Into<f64>, longitude: impl Into<f64>) -> Self {
44 Self {
45 latitude: latitude.into(),
46 longitude: longitude.into(),
47 accuracy: None,
48 altitude: None,
49 altitude_accuracy: None,
50 heading: None,
51 speed: None,
52 }
53 }
54}
55impl GeolocationCoordinates {
56 pub const IDENTIFIER: &'static str = "emulation.GeolocationCoordinates";
57 pub const DOMAIN_DIRECTION: &'static str = "remote";
58 pub fn identifier(&self) -> &'static str {
59 Self::IDENTIFIER
60 }
61}
62#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
63pub struct GeolocationPositionError {
64 #[serde(rename = "type")]
65 pub r#type: GeolocationPositionErrorType,
66}
67#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
68pub enum GeolocationPositionErrorType {
69 #[serde(rename = "positionUnavailable")]
70 PositionUnavailable,
71}
72impl GeolocationPositionError {
73 pub fn new(r#type: impl Into<GeolocationPositionErrorType>) -> Self {
74 Self {
75 r#type: r#type.into(),
76 }
77 }
78}
79impl GeolocationPositionError {
80 pub const IDENTIFIER: &'static str = "emulation.GeolocationPositionError";
81 pub const DOMAIN_DIRECTION: &'static str = "remote";
82 pub fn identifier(&self) -> &'static str {
83 Self::IDENTIFIER
84 }
85}
86#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
87pub struct NetworkConditions(NetworkConditionsOffline);
88impl NetworkConditions {
89 pub fn new(val: impl Into<NetworkConditionsOffline>) -> Self {
90 NetworkConditions(val.into())
91 }
92 pub fn inner(&self) -> &NetworkConditionsOffline {
93 &self.0
94 }
95}
96impl NetworkConditions {
97 pub const IDENTIFIER: &'static str = "emulation.NetworkConditions";
98 pub const DOMAIN_DIRECTION: &'static str = "remote";
99 pub fn identifier(&self) -> &'static str {
100 Self::IDENTIFIER
101 }
102}
103#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
104pub struct NetworkConditionsOffline {
105 #[serde(rename = "type")]
106 pub r#type: NetworkConditionsOfflineType,
107}
108#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
109pub enum NetworkConditionsOfflineType {
110 #[serde(rename = "offline")]
111 Offline,
112}
113impl NetworkConditionsOffline {
114 pub fn new(r#type: impl Into<NetworkConditionsOfflineType>) -> Self {
115 Self {
116 r#type: r#type.into(),
117 }
118 }
119}
120impl NetworkConditionsOffline {
121 pub const IDENTIFIER: &'static str = "emulation.NetworkConditionsOffline";
122 pub const DOMAIN_DIRECTION: &'static str = "remote";
123 pub fn identifier(&self) -> &'static str {
124 Self::IDENTIFIER
125 }
126}
127#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
128pub enum ScreenOrientationNatural {
129 #[serde(rename = "portrait")]
130 Portrait,
131 #[serde(rename = "landscape")]
132 Landscape,
133}
134#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
135pub enum ScreenOrientationType {
136 #[serde(rename = "portrait-primary")]
137 PortraitPrimary,
138 #[serde(rename = "portrait-secondary")]
139 PortraitSecondary,
140 #[serde(rename = "landscape-primary")]
141 LandscapePrimary,
142 #[serde(rename = "landscape-secondary")]
143 LandscapeSecondary,
144}
145#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
146pub struct ScreenOrientation {
147 #[serde(rename = "natural")]
148 pub natural: ScreenOrientationNatural,
149 #[serde(rename = "type")]
150 pub r#type: ScreenOrientationType,
151}
152impl ScreenOrientation {
153 pub fn new(
154 natural: impl Into<ScreenOrientationNatural>,
155 r#type: impl Into<ScreenOrientationType>,
156 ) -> Self {
157 Self {
158 natural: natural.into(),
159 r#type: r#type.into(),
160 }
161 }
162}
163impl ScreenOrientation {
164 pub const IDENTIFIER: &'static str = "emulation.ScreenOrientation";
165 pub const DOMAIN_DIRECTION: &'static str = "remote";
166 pub fn identifier(&self) -> &'static str {
167 Self::IDENTIFIER
168 }
169}