1use super::dom;
3use super::page;
4#[allow(unused_imports)]
5use super::types::*;
6#[allow(unused_imports)]
7use serde::{Deserialize, Serialize};
8#[allow(unused_imports)]
9use serde_json::Value as Json;
10#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
11pub enum FillingStrategy {
12 #[serde(rename = "autocompleteAttribute")]
13 AutocompleteAttribute,
14 #[serde(rename = "autofillInferred")]
15 AutofillInferred,
16}
17#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
18pub struct CreditCard {
19 #[serde(default)]
20 #[serde(rename = "number")]
21 pub number: String,
22 #[serde(default)]
23 #[serde(rename = "name")]
24 pub name: String,
25 #[serde(default)]
26 #[serde(rename = "expiryMonth")]
27 pub expiry_month: String,
28 #[serde(default)]
29 #[serde(rename = "expiryYear")]
30 pub expiry_year: String,
31 #[serde(default)]
32 #[serde(rename = "cvc")]
33 pub cvc: String,
34}
35#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
36pub struct AddressField {
37 #[serde(default)]
38 #[serde(rename = "name")]
39 pub name: String,
40 #[serde(default)]
41 #[serde(rename = "value")]
42 pub value: String,
43}
44#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
45pub struct AddressFields {
46 #[serde(rename = "fields")]
47 pub fields: Vec<AddressField>,
48}
49#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
50pub struct Address {
51 #[serde(rename = "fields")]
52 pub fields: Vec<AddressField>,
53}
54#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
55pub struct AddressUi {
56 #[serde(rename = "addressFields")]
57 pub address_fields: Vec<AddressFields>,
58}
59#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
60pub struct FilledField {
61 #[serde(default)]
62 #[serde(rename = "htmlType")]
63 pub html_type: String,
64 #[serde(default)]
65 #[serde(rename = "id")]
66 pub id: String,
67 #[serde(default)]
68 #[serde(rename = "name")]
69 pub name: String,
70 #[serde(default)]
71 #[serde(rename = "value")]
72 pub value: String,
73 #[serde(default)]
74 #[serde(rename = "autofillType")]
75 pub autofill_type: String,
76 #[serde(rename = "fillingStrategy")]
77 pub filling_strategy: FillingStrategy,
78 #[serde(rename = "frameId")]
79 pub frame_id: page::FrameId,
80 #[serde(rename = "fieldId")]
81 pub field_id: dom::BackendNodeId,
82}
83#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
84pub struct Trigger {
85 #[serde(rename = "fieldId")]
86 pub field_id: dom::BackendNodeId,
87 #[serde(skip_serializing_if = "Option::is_none")]
88 #[serde(rename = "frameId")]
89 pub frame_id: Option<page::FrameId>,
90 #[serde(rename = "card")]
91 pub card: CreditCard,
92}
93#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
94pub struct SetAddresses {
95 #[serde(rename = "addresses")]
96 pub addresses: Vec<Address>,
97}
98#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
99#[serde(rename_all = "camelCase")]
100pub struct Disable(pub Option<serde_json::Value>);
101#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
102#[serde(rename_all = "camelCase")]
103pub struct Enable(pub Option<serde_json::Value>);
104#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
105#[serde(rename_all = "camelCase")]
106pub struct TriggerReturnObject {}
107#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
108#[serde(rename_all = "camelCase")]
109pub struct SetAddressesReturnObject {}
110#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
111#[serde(rename_all = "camelCase")]
112pub struct DisableReturnObject {}
113#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
114#[serde(rename_all = "camelCase")]
115pub struct EnableReturnObject {}
116impl Method for Trigger {
117 const NAME: &'static str = "Autofill.trigger";
118 type ReturnObject = TriggerReturnObject;
119}
120impl Method for SetAddresses {
121 const NAME: &'static str = "Autofill.setAddresses";
122 type ReturnObject = SetAddressesReturnObject;
123}
124impl Method for Disable {
125 const NAME: &'static str = "Autofill.disable";
126 type ReturnObject = DisableReturnObject;
127}
128impl Method for Enable {
129 const NAME: &'static str = "Autofill.enable";
130 type ReturnObject = EnableReturnObject;
131}
132pub mod events {
133 #[allow(unused_imports)]
134 use super::super::types::*;
135 #[allow(unused_imports)]
136 use serde::{Deserialize, Serialize};
137 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
138 pub struct AddressFormFilledEvent {
139 pub params: AddressFormFilledEventParams,
140 }
141 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
142 pub struct AddressFormFilledEventParams {
143 #[serde(rename = "filledFields")]
144 pub filled_fields: Vec<super::FilledField>,
145 #[serde(rename = "addressUi")]
146 pub address_ui: super::AddressUi,
147 }
148}