Skip to main content

openlimits_binance/model/websocket/
user_order_update.rs

1use serde::Deserialize;
2use serde::Serialize;
3use rust_decimal::prelude::Decimal;
4use super::shared::string_to_decimal;
5use super::OrderExecType;
6use super::OrderRejectReason;
7use super::OrderStatus;
8use super::OrderType;
9use super::Side;
10use super::TimeInForce;
11
12/// This struct represents the user order update
13#[derive(Debug, Serialize, Deserialize, Clone)]
14#[serde(rename_all = "camelCase")]
15pub struct UserOrderUpdate {
16    #[serde(rename = "e")]
17    pub event_type: String,
18    #[serde(rename = "E")]
19    pub event_time: u64,
20    #[serde(rename = "s")]
21    pub symbol: String,
22    #[serde(rename = "c")]
23    pub new_client_order_id: String,
24    #[serde(rename = "S")]
25    pub side: Side,
26    #[serde(rename = "o")]
27    pub order_type: OrderType,
28    #[serde(rename = "f")]
29    pub time_in_force: TimeInForce,
30    #[serde(rename = "q", with = "string_to_decimal")]
31    pub qty: Decimal,
32    #[serde(rename = "p", with = "string_to_decimal")]
33    pub price: Decimal,
34    #[serde(rename = "P", with = "string_to_decimal")]
35    pub stop_price: Decimal,
36    #[serde(rename = "F", with = "string_to_decimal")]
37    pub iceberg_qty: Decimal,
38    #[serde(skip_serializing)]
39    pub g: i32,
40    #[serde(skip_serializing, rename = "C")]
41    pub c_ignore: Option<String>,
42    #[serde(rename = "x")]
43    pub execution_type: OrderExecType,
44    #[serde(rename = "X")]
45    pub order_status: OrderStatus,
46    #[serde(rename = "r")]
47    pub order_reject_reason: OrderRejectReason,
48    #[serde(rename = "i")]
49    pub order_id: u64,
50    #[serde(rename = "l", with = "string_to_decimal")]
51    pub qty_last_filled_trade: Decimal,
52    #[serde(rename = "z", with = "string_to_decimal")]
53    pub accumulated_qty_filled_trades: Decimal,
54    #[serde(rename = "L", with = "string_to_decimal")]
55    pub price_last_filled_trade: Decimal,
56    #[serde(rename = "n", with = "string_to_decimal")]
57    pub commission: Decimal,
58    #[serde(skip_serializing, rename = "N")]
59    pub asset_commisioned: Option<String>,
60    #[serde(rename = "T")]
61    pub trade_order_time: u64,
62    #[serde(rename = "t")]
63    pub trade_id: i64,
64    #[serde(skip_serializing, rename = "I")]
65    pub i_ignore: u64,
66    #[serde(skip_serializing)]
67    pub w: bool,
68    #[serde(rename = "m")]
69    pub is_buyer_maker: bool,
70    #[serde(skip_serializing, rename = "M")]
71    pub m_ignore: bool,
72    #[serde(skip_serializing, rename = "O")]
73    pub order_creation_time: u64,
74    #[serde(skip_serializing, rename = "Z", with = "string_to_decimal")]
75    pub cumulative_quote_asset_transacted_qty: Decimal,
76}