use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MarketExecutionResponseDetails {
#[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>,
#[serde(rename = "type")]
pub r#type: Type,
}
impl MarketExecutionResponseDetails {
pub fn new(
side: Side,
base_amount: String,
base_asset_id: String,
quote_asset_id: String,
r#type: Type,
) -> MarketExecutionResponseDetails {
MarketExecutionResponseDetails {
side,
base_amount,
base_asset_id,
base_asset_rail: None,
quote_asset_id,
quote_asset_rail: None,
r#type,
}
}
}
#[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
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "MARKET")]
Market,
}
impl Default for Type {
fn default() -> Type {
Self::Market
}
}