use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Instrument {
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<models::InstrumentName>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<models::InstrumentType>,
#[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "pipLocation", skip_serializing_if = "Option::is_none")]
pub pip_location: Option<i32>,
#[serde(rename = "displayPrecision", skip_serializing_if = "Option::is_none")]
pub display_precision: Option<i32>,
#[serde(rename = "tradeUnitsPrecision", skip_serializing_if = "Option::is_none")]
pub trade_units_precision: Option<i32>,
#[serde(rename = "minimumTradeSize", skip_serializing_if = "Option::is_none")]
pub minimum_trade_size: Option<String>,
#[serde(rename = "maximumTrailingStopDistance", skip_serializing_if = "Option::is_none")]
pub maximum_trailing_stop_distance: Option<String>,
#[serde(rename = "minimumTrailingStopDistance", skip_serializing_if = "Option::is_none")]
pub minimum_trailing_stop_distance: Option<String>,
#[serde(rename = "maximumPositionSize", skip_serializing_if = "Option::is_none")]
pub maximum_position_size: Option<String>,
#[serde(rename = "maximumOrderUnits", skip_serializing_if = "Option::is_none")]
pub maximum_order_units: Option<String>,
#[serde(rename = "marginRate", skip_serializing_if = "Option::is_none")]
pub margin_rate: Option<String>,
#[serde(rename = "commission", skip_serializing_if = "Option::is_none")]
pub commission: Option<Box<models::InstrumentComission>>,
}
impl Instrument {
pub fn new() -> Instrument {
Instrument {
name: None,
r#type: None,
display_name: None,
pip_location: None,
display_precision: None,
trade_units_precision: None,
minimum_trade_size: None,
maximum_trailing_stop_distance: None,
minimum_trailing_stop_distance: None,
maximum_position_size: None,
maximum_order_units: None,
margin_rate: None,
commission: None,
}
}
}