oanda_v20_openapi/models/
order_fill_reason.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[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