use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsProfile {
pub web_apis: Option<JsProfileWebApis>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsProfileWebApis {
pub navigator: Option<JsProfileNavigator>,
pub screen: Option<JsProfileScreen>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsProfileNavigator {
#[serde(alias = "appCodeName")]
pub app_code_name: Option<String>,
#[serde(alias = "appName")]
pub app_name: Option<String>,
#[serde(alias = "buildID")]
pub build_id: Option<String>,
#[serde(alias = "cookieEnabled")]
pub cookie_enabled: Option<bool>,
#[serde(alias = "doNotTrack")]
pub do_not_track: Option<String>,
pub language: Option<String>,
pub languages: Option<Vec<String>>,
pub oscpu: Option<String>,
#[serde(alias = "pdfViewerEnabled")]
pub pdf_viewer_enabled: Option<bool>,
pub platform: Option<String>,
pub product: Option<String>,
#[serde(alias = "productSub")]
pub product_sub: Option<String>,
#[serde(alias = "userAgent")]
pub user_agent: Option<String>,
pub vendor: Option<String>,
#[serde(alias = "vendorSub")]
pub vendor_sub: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsProfileScreen {
pub width: Option<i32>,
pub height: Option<i32>,
#[serde(alias = "availWidth")]
pub avail_width: Option<i32>,
#[serde(alias = "availHeight")]
pub avail_height: Option<i32>,
#[serde(alias = "availLeft")]
pub avail_left: Option<i32>,
pub left: Option<i32>,
#[serde(alias = "availTop")]
pub avail_top: Option<i32>,
pub top: Option<i32>,
#[serde(alias = "colorDepth")]
pub color_depth: Option<i32>,
#[serde(alias = "pixelDepth")]
pub pixel_depth: Option<i32>,
#[serde(rename = "type")]
pub screen_type: Option<String>,
#[serde(alias = "mozOrientation")]
pub moz_orientation: Option<String>,
#[serde(alias = "mozBrightness")]
pub moz_brightness: Option<f32>,
#[serde(alias = "lockOrientation")]
pub lock_orientation: Option<String>,
#[serde(alias = "unlockOrientation")]
pub unlock_orientation: Option<String>,
}