rustenium-cdp-definitions 0.1.1

Generated Chrome DevTools Protocol type definitions for Rustenium
Documentation
use super::commands::*;
impl Trigger {
    pub fn builder() -> TriggerBuilder {
        <TriggerBuilder as Default>::default()
    }
}
#[derive(Default, Clone)]
pub struct TriggerBuilder {
    field_id: Option<crate::browser_protocol::dom::types::BackendNodeId>,
    frame_id: Option<crate::browser_protocol::page::types::FrameId>,
    card: Option<super::types::CreditCard>,
    address: Option<super::types::Address>,
}
impl TriggerBuilder {
    pub fn field_id(
        mut self,
        field_id: impl Into<crate::browser_protocol::dom::types::BackendNodeId>,
    ) -> Self {
        self.field_id = Some(field_id.into());
        self
    }
    pub fn frame_id(
        mut self,
        frame_id: impl Into<crate::browser_protocol::page::types::FrameId>,
    ) -> Self {
        self.frame_id = Some(frame_id.into());
        self
    }
    pub fn card(mut self, card: impl Into<super::types::CreditCard>) -> Self {
        self.card = Some(card.into());
        self
    }
    pub fn address(mut self, address: impl Into<super::types::Address>) -> Self {
        self.address = Some(address.into());
        self
    }
    pub fn build(self) -> Result<Trigger, String> {
        Ok(Trigger {
            method: TriggerMethod::Trigger,
            params: TriggerParams {
                field_id: self.field_id.ok_or_else(|| {
                    format!("Field `{}` is mandatory.", std::stringify!(field_id))
                })?,
                frame_id: self.frame_id,
                card: self.card,
                address: self.address,
            },
        })
    }
}
impl SetAddresses {
    pub fn builder() -> SetAddressesBuilder {
        <SetAddressesBuilder as Default>::default()
    }
}
#[derive(Default, Clone)]
pub struct SetAddressesBuilder {
    addresses: Option<Vec<super::types::Address>>,
}
impl SetAddressesBuilder {
    pub fn addresse(mut self, addresse: impl Into<super::types::Address>) -> Self {
        let v = self.addresses.get_or_insert(Vec::new());
        v.push(addresse.into());
        self
    }
    pub fn addresses<I, S>(mut self, addresses: I) -> Self
    where
        I: IntoIterator<Item = S>,
        S: Into<super::types::Address>,
    {
        let v = self.addresses.get_or_insert(Vec::new());
        for val in addresses {
            v.push(val.into());
        }
        self
    }
    pub fn build(self) -> Result<SetAddresses, String> {
        Ok(SetAddresses {
            method: SetAddressesMethod::SetAddresses,
            params: SetAddressesParams {
                addresses: self.addresses.ok_or_else(|| {
                    format!("Field `{}` is mandatory.", std::stringify!(addresses))
                })?,
            },
        })
    }
}
#[derive(Debug, Clone, Default)]
pub struct DisableBuilder;
impl DisableBuilder {
    pub fn new() -> Self {
        Self
    }
    pub fn build(self) -> Disable {
        Disable {
            method: DisableMethod::Disable,
            params: DisableParams {},
        }
    }
}
impl Disable {
    pub fn builder() -> DisableBuilder {
        DisableBuilder
    }
}
#[derive(Debug, Clone, Default)]
pub struct EnableBuilder;
impl EnableBuilder {
    pub fn new() -> Self {
        Self
    }
    pub fn build(self) -> Enable {
        Enable {
            method: EnableMethod::Enable,
            params: EnableParams {},
        }
    }
}
impl Enable {
    pub fn builder() -> EnableBuilder {
        EnableBuilder
    }
}