Skip to main content

openlimits_binance/model/
order.rs

1use serde::Deserialize;
2use serde::Serialize;
3use rust_decimal::prelude::Decimal;
4use super::OrderStatus;
5use super::shared::string_to_decimal;
6use super::shared::string_to_opt_decimal;
7
8/// This struct represents an order
9#[derive(Debug, Serialize, Deserialize, Clone)]
10#[serde(rename_all = "camelCase")]
11pub struct Order {
12    pub symbol: String,
13    pub order_id: u64,
14    pub client_order_id: String,
15    #[serde(default, with = "string_to_decimal")]
16    pub price: Decimal,
17    #[serde(default, with = "string_to_decimal")]
18    pub orig_qty: Decimal,
19    #[serde(default, with = "string_to_decimal")]
20    pub executed_qty: Decimal,
21    #[serde(default)]
22    pub status: OrderStatus,
23    #[serde(default)]
24    pub time_in_force: Option<String>,
25    #[serde(default, rename = "type")]
26    pub type_name: String,
27    #[serde(default)]
28    pub side: String,
29    #[serde(default, with = "string_to_opt_decimal")]
30    pub stop_price: Option<Decimal>,
31    #[serde(default)]
32    pub iceberg_qty: Option<String>,
33    #[serde(default)]
34    pub time: Option<u64>,
35}