browser_protocol/systeminfo/
mod.rs1use serde::{Serialize, Deserialize};
3use serde_json::Value as JsonValue;
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default)]
8#[serde(rename_all = "camelCase")]
9pub struct GPUDevice {
10 pub vendorId: f64,
13 pub deviceId: f64,
16 #[serde(skip_serializing_if = "Option::is_none")]
19 pub subSysId: Option<f64>,
20 #[serde(skip_serializing_if = "Option::is_none")]
23 pub revision: Option<f64>,
24 pub vendorString: String,
27 pub deviceString: String,
30 pub driverVendor: String,
33 pub driverVersion: String,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, Default)]
41#[serde(rename_all = "camelCase")]
42pub struct Size {
43 pub width: u64,
46 pub height: i64,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize, Default)]
55#[serde(rename_all = "camelCase")]
56pub struct VideoDecodeAcceleratorCapability {
57 pub profile: String,
60 pub maxResolution: Size,
63 pub minResolution: Size,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize, Default)]
72#[serde(rename_all = "camelCase")]
73pub struct VideoEncodeAcceleratorCapability {
74 pub profile: String,
77 pub maxResolution: Size,
80 pub maxFramerateNumerator: i64,
85
86 pub maxFramerateDenominator: i64,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
92pub enum SubsamplingFormat {
93 #[default]
94 Yuv420,
95 Yuv422,
96 Yuv444,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
102pub enum ImageType {
103 #[default]
104 Jpeg,
105 Webp,
106 Unknown,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize, Default)]
112#[serde(rename_all = "camelCase")]
113pub struct GPUInfo {
114 pub devices: Vec<GPUDevice>,
117 #[serde(skip_serializing_if = "Option::is_none")]
120 pub auxAttributes: Option<serde_json::Map<String, JsonValue>>,
121 #[serde(skip_serializing_if = "Option::is_none")]
124 pub featureStatus: Option<serde_json::Map<String, JsonValue>>,
125 pub driverBugWorkarounds: Vec<String>,
128 pub videoDecoding: Vec<VideoDecodeAcceleratorCapability>,
131 pub videoEncoding: Vec<VideoEncodeAcceleratorCapability>,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize, Default)]
139#[serde(rename_all = "camelCase")]
140pub struct ProcessInfo {
141 #[serde(rename = "type")]
144 pub type_: String,
145 pub id: u64,
148 pub cpuTime: f64,
152}
153
154#[derive(Debug, Clone, Serialize, Deserialize, Default)]
157#[serde(rename_all = "camelCase")]
158pub struct GetInfoReturns {
159 pub gpu: GPUInfo,
162 pub modelName: String,
166 pub modelVersion: String,
170 pub commandLine: String,
174}
175
176#[derive(Debug, Clone, Serialize, Deserialize, Default)]
177pub struct GetInfoParams {}
178
179impl GetInfoParams { pub const METHOD: &'static str = "SystemInfo.getInfo"; }
180
181impl crate::CdpCommand for GetInfoParams {
182 const METHOD: &'static str = "SystemInfo.getInfo";
183 type Response = GetInfoReturns;
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize, Default)]
189#[serde(rename_all = "camelCase")]
190pub struct GetFeatureStateParams {
191
192 pub featureState: String,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize, Default)]
198#[serde(rename_all = "camelCase")]
199pub struct GetFeatureStateReturns {
200
201 pub featureEnabled: bool,
202}
203
204impl GetFeatureStateParams { pub const METHOD: &'static str = "SystemInfo.getFeatureState"; }
205
206impl crate::CdpCommand for GetFeatureStateParams {
207 const METHOD: &'static str = "SystemInfo.getFeatureState";
208 type Response = GetFeatureStateReturns;
209}
210
211#[derive(Debug, Clone, Serialize, Deserialize, Default)]
214#[serde(rename_all = "camelCase")]
215pub struct GetProcessInfoReturns {
216 pub processInfo: Vec<ProcessInfo>,
219}
220
221#[derive(Debug, Clone, Serialize, Deserialize, Default)]
222pub struct GetProcessInfoParams {}
223
224impl GetProcessInfoParams { pub const METHOD: &'static str = "SystemInfo.getProcessInfo"; }
225
226impl crate::CdpCommand for GetProcessInfoParams {
227 const METHOD: &'static str = "SystemInfo.getProcessInfo";
228 type Response = GetProcessInfoReturns;
229}