use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExecutionResponseBaseDetails {
#[serde(rename = "side")]
pub side: Side,
#[serde(rename = "baseAmount")]
pub base_amount: String,
#[serde(rename = "baseAssetId")]
pub base_asset_id: String,
#[serde(rename = "baseAssetRail", skip_serializing_if = "Option::is_none")]
pub base_asset_rail: Option<models::TransferRail>,
#[serde(rename = "quoteAssetId")]
pub quote_asset_id: String,
#[serde(rename = "quoteAssetRail", skip_serializing_if = "Option::is_none")]
pub quote_asset_rail: Option<models::TransferRail>,
}
impl ExecutionResponseBaseDetails {
pub fn new(
side: Side,
base_amount: String,
base_asset_id: String,
quote_asset_id: String,
) -> ExecutionResponseBaseDetails {
ExecutionResponseBaseDetails {
side,
base_amount,
base_asset_id,
base_asset_rail: None,
quote_asset_id,
quote_asset_rail: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Side {
#[serde(rename = "BUY")]
Buy,
#[serde(rename = "SELL")]
Sell,
}
impl Default for Side {
fn default() -> Side {
Self::Buy
}
}