#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Tax {
#[serde(rename = "fillId", skip_serializing_if = "Option::is_none")]
pub fill_id: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<Name>,
#[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
pub quantity: Option<f32>,
#[serde(rename = "timeCharged", skip_serializing_if = "Option::is_none")]
pub time_charged: Option<String>,
}
impl Tax {
#[must_use]
pub const fn new() -> Self {
Self {
fill_id: None,
name: None,
quantity: None,
time_charged: None,
}
}
}
impl Default for Tax {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Name {
#[serde(rename = "COMMISSION_TURNOVER")]
CommissionTurnover,
#[serde(rename = "CURRENCY_CONVERSION_FEE")]
CurrencyConversionFee,
#[serde(rename = "FINRA_FEE")]
FinraFee,
#[serde(rename = "FRENCH_TRANSACTION_TAX")]
FrenchTransactionTax,
#[serde(rename = "PTM_LEVY")]
PtmLevy,
#[serde(rename = "STAMP_DUTY")]
StampDuty,
#[serde(rename = "STAMP_DUTY_RESERVE_TAX")]
StampDutyReserveTax,
#[serde(rename = "TRANSACTION_FEE")]
TransactionFee,
}
impl Default for Name {
fn default() -> Self {
Self::CommissionTurnover
}
}