use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct QuoteExecutionResponseDetails {
#[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,
#[serde(rename = "quoteId")]
pub quote_id: String,
#[serde(rename = "quoteAmount")]
pub quote_amount: String,
}
impl QuoteExecutionResponseDetails {
pub fn new(
side: Side,
base_amount: String,
base_asset_id: String,
quote_asset_id: String,
r#type: Type,
quote_id: String,
quote_amount: String,
) -> QuoteExecutionResponseDetails {
QuoteExecutionResponseDetails {
side,
base_amount,
base_asset_id,
base_asset_rail: None,
quote_asset_id,
quote_asset_rail: None,
r#type,
quote_id,
quote_amount,
}
}
}
#[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 = "QUOTE")]
Quote,
}
impl Default for Type {
fn default() -> Type {
Self::Quote
}
}