Skip to main content

oanda_v20_openapi/models/
order_fill_reason.rs

1/*
2 * OANDA v20 API
3 *
4 * The full OANDA v20 API Specification. This specification defines how to interact with v20 Accounts, Trades, Orders, Pricing and more.
5 *
6 * The version of the OpenAPI document: 0.2.1
7 * Contact: jmicoud02@gmail.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// OrderFillReason : The reason that an Order was filled
15/// The reason that an Order was filled
16#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
17pub enum OrderFillReason {
18    #[serde(rename = "LIMIT_ORDER")]
19    LimitOrder,
20    #[serde(rename = "STOP_ORDER")]
21    StopOrder,
22    #[serde(rename = "MARKET_IF_TOUCHED_ORDER")]
23    MarketIfTouchedOrder,
24    #[serde(rename = "TAKE_PROFIT_ORDER")]
25    TakeProfitOrder,
26    #[serde(rename = "STOP_LOSS_ORDER")]
27    StopLossOrder,
28    #[serde(rename = "TRAILING_STOP_LOSS_ORDER")]
29    TrailingStopLossOrder,
30    #[serde(rename = "MARKET_ORDER")]
31    MarketOrder,
32    #[serde(rename = "MARKET_ORDER_TRADE_CLOSE")]
33    MarketOrderTradeClose,
34    #[serde(rename = "MARKET_ORDER_POSITION_CLOSEOUT")]
35    MarketOrderPositionCloseout,
36    #[serde(rename = "MARKET_ORDER_MARGIN_CLOSEOUT")]
37    MarketOrderMarginCloseout,
38    #[serde(rename = "MARKET_ORDER_DELAYED_TRADE_CLOSE")]
39    MarketOrderDelayedTradeClose,
40
41}
42
43impl std::fmt::Display for OrderFillReason {
44    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
45        match self {
46            Self::LimitOrder => write!(f, "LIMIT_ORDER"),
47            Self::StopOrder => write!(f, "STOP_ORDER"),
48            Self::MarketIfTouchedOrder => write!(f, "MARKET_IF_TOUCHED_ORDER"),
49            Self::TakeProfitOrder => write!(f, "TAKE_PROFIT_ORDER"),
50            Self::StopLossOrder => write!(f, "STOP_LOSS_ORDER"),
51            Self::TrailingStopLossOrder => write!(f, "TRAILING_STOP_LOSS_ORDER"),
52            Self::MarketOrder => write!(f, "MARKET_ORDER"),
53            Self::MarketOrderTradeClose => write!(f, "MARKET_ORDER_TRADE_CLOSE"),
54            Self::MarketOrderPositionCloseout => write!(f, "MARKET_ORDER_POSITION_CLOSEOUT"),
55            Self::MarketOrderMarginCloseout => write!(f, "MARKET_ORDER_MARGIN_CLOSEOUT"),
56            Self::MarketOrderDelayedTradeClose => write!(f, "MARKET_ORDER_DELAYED_TRADE_CLOSE"),
57        }
58    }
59}
60
61impl Default for OrderFillReason {
62    fn default() -> OrderFillReason {
63        Self::LimitOrder
64    }
65}
66