use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PaymentInstructions {
#[serde(rename = "type")]
pub r#type: Type,
#[serde(rename = "address")]
pub address: models::AccountHolderDetails,
#[serde(rename = "referenceId")]
pub reference_id: String,
}
impl PaymentInstructions {
pub fn new(
r#type: Type,
address: models::AccountHolderDetails,
reference_id: String,
) -> PaymentInstructions {
PaymentInstructions {
r#type,
address,
reference_id,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "IBAN")]
Iban,
#[serde(rename = "SWIFT")]
Swift,
#[serde(rename = "ACH")]
Ach,
#[serde(rename = "US_WIRE")]
UsWire,
#[serde(rename = "SPEI")]
Spei,
#[serde(rename = "SEPA")]
Sepa,
#[serde(rename = "PIX")]
Pix,
#[serde(rename = "LOCAL_BANK_TRANSFER_AFRICA")]
LocalBankTransferAfrica,
#[serde(rename = "MOBILE_MONEY")]
MobileMoney,
}
impl Default for Type {
fn default() -> Type {
Self::Iban
}
}