1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct BrowserInfo {
7 pub browser_java_enabled: bool,
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub browser_java_script_enabled: Option<bool>,
12 pub browser_language: String,
14 pub browser_color_depth: String,
16 pub browser_screen_height: String,
18 pub browser_screen_width: String,
20 pub browser_tz: String,
22 pub browser_accept_header: String,
24 pub browser_user_agent: String,
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub browser_ip: Option<String>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub struct SdkInfo {
35 pub sdk_app_id: String,
37 pub sdk_ephem_pub_key: serde_json::Value,
39 pub sdk_reference_number: String,
41 pub sdk_trans_id: String,
43 pub sdk_enc_data: String,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub sdk_max_timeout: Option<u8>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct DeviceRenderOptions {
54 pub sdk_interface: SdkInterface,
56 pub sdk_ui_type: Vec<UiType>,
58}
59
60#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
61pub enum SdkInterface {
62 #[serde(rename = "01")]
63 Native,
64 #[serde(rename = "02")]
65 Html,
66 #[serde(rename = "03")]
67 Both,
68}
69
70#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
71pub enum UiType {
72 #[serde(rename = "01")]
73 Text,
74 #[serde(rename = "02")]
75 SingleSelect,
76 #[serde(rename = "03")]
77 MultiSelect,
78 #[serde(rename = "04")]
79 Oob,
80 #[serde(rename = "05")]
81 HtmlOther,
82}