Skip to main content

openlimits_binance/model/websocket/
aggregate_trade.rs

1use serde::Deserialize;
2use serde::Serialize;
3use rust_decimal::prelude::Decimal;
4use super::shared::string_to_decimal;
5
6/// This struct represents the aggregate trade
7#[derive(Debug, Serialize, Deserialize, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct AggregateTrade {
10    #[serde(rename = "e")]
11    pub event_type: String,
12    #[serde(rename = "E")]
13    pub event_time: u64,
14    #[serde(rename = "s")]
15    pub symbol: String,
16    #[serde(rename = "a")]
17    pub aggregated_trade_id: u64,
18    #[serde(rename = "p", with = "string_to_decimal")]
19    pub price: Decimal,
20    #[serde(rename = "q", with = "string_to_decimal")]
21    pub qty: Decimal,
22    #[serde(rename = "f")]
23    pub first_break_trade_id: u64,
24    #[serde(rename = "l")]
25    pub last_break_trade_id: u64,
26    #[serde(rename = "T")]
27    pub trade_order_time: u64,
28    #[serde(rename = "m")]
29    pub is_buyer_maker: bool,
30    #[serde(skip_serializing, rename = "M")]
31    pub m_ignore: bool,
32}