use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreditCard {
pub number: String,
pub name: String,
pub expiryMonth: String,
pub expiryYear: String,
pub cvc: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddressField {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddressFields {
pub fields: Vec<AddressField>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Address {
pub fields: Vec<AddressField>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddressUI {
pub addressFields: Vec<AddressFields>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum FillingStrategy {
#[default]
AutocompleteAttribute,
AutofillInferred,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FilledField {
pub htmlType: String,
pub id: String,
pub name: String,
pub value: String,
pub autofillType: String,
pub fillingStrategy: FillingStrategy,
pub frameId: crate::page::FrameId,
pub fieldId: crate::dom::BackendNodeId,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TriggerParams {
pub fieldId: crate::dom::BackendNodeId,
#[serde(skip_serializing_if = "Option::is_none")]
pub frameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card: Option<CreditCard>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<Address>,
}
impl TriggerParams { pub const METHOD: &'static str = "Autofill.trigger"; }
impl crate::CdpCommand for TriggerParams {
const METHOD: &'static str = "Autofill.trigger";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetAddressesParams {
pub addresses: Vec<Address>,
}
impl SetAddressesParams { pub const METHOD: &'static str = "Autofill.setAddresses"; }
impl crate::CdpCommand for SetAddressesParams {
const METHOD: &'static str = "Autofill.setAddresses";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DisableParams {}
impl DisableParams { pub const METHOD: &'static str = "Autofill.disable"; }
impl crate::CdpCommand for DisableParams {
const METHOD: &'static str = "Autofill.disable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EnableParams {}
impl EnableParams { pub const METHOD: &'static str = "Autofill.enable"; }
impl crate::CdpCommand for EnableParams {
const METHOD: &'static str = "Autofill.enable";
type Response = crate::EmptyReturns;
}