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(skip_serializing_if = "Option::is_none")]
91 #[serde(rename = "card")]
92 pub card: Option<CreditCard>,
93 #[serde(skip_serializing_if = "Option::is_none")]
94 #[serde(rename = "address")]
95 pub address: Option<Address>,
96}
97#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
98pub struct SetAddresses {
99 #[serde(rename = "addresses")]
100 pub addresses: Vec<Address>,
101}
102#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
103#[serde(rename_all = "camelCase")]
104pub struct Disable(pub Option<serde_json::Value>);
105#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
106#[serde(rename_all = "camelCase")]
107pub struct Enable(pub Option<serde_json::Value>);
108#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
109#[serde(rename_all = "camelCase")]
110pub struct TriggerReturnObject {}
111#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
112#[serde(rename_all = "camelCase")]
113pub struct SetAddressesReturnObject {}
114#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
115#[serde(rename_all = "camelCase")]
116pub struct DisableReturnObject {}
117#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
118#[serde(rename_all = "camelCase")]
119pub struct EnableReturnObject {}
120impl Method for Trigger {
121 const NAME: &'static str = "Autofill.trigger";
122 type ReturnObject = TriggerReturnObject;
123}
124impl Method for SetAddresses {
125 const NAME: &'static str = "Autofill.setAddresses";
126 type ReturnObject = SetAddressesReturnObject;
127}
128impl Method for Disable {
129 const NAME: &'static str = "Autofill.disable";
130 type ReturnObject = DisableReturnObject;
131}
132impl Method for Enable {
133 const NAME: &'static str = "Autofill.enable";
134 type ReturnObject = EnableReturnObject;
135}
136pub mod events {
137 #[allow(unused_imports)]
138 use super::super::types::*;
139 #[allow(unused_imports)]
140 use serde::{Deserialize, Serialize};
141 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
142 pub struct AddressFormFilledEvent {
143 pub params: AddressFormFilledEventParams,
144 }
145 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
146 pub struct AddressFormFilledEventParams {
147 #[serde(rename = "filledFields")]
148 pub filled_fields: Vec<super::FilledField>,
149 #[serde(rename = "addressUi")]
150 pub address_ui: super::AddressUi,
151 }
152}