From 0d3113077e46e6bde95d08336ed04ab13f01b50b Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:39:21 +0300 Subject: [PATCH 1/6] rustfmt --- src/model.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/model.rs b/src/model.rs index a2a61fbe..cf0e0731 100644 --- a/src/model.rs +++ b/src/model.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; #[derive(Deserialize, Clone)] -pub struct Empty { } +pub struct Empty {} #[derive(Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] @@ -223,10 +223,7 @@ pub struct Bids { impl Bids { pub fn new(price: f64, qty: f64) -> Bids { - Bids { - price, - qty, - } + Bids { price, qty } } } @@ -566,7 +563,6 @@ pub struct IndexPriceEvent { #[serde(rename = "p")] pub price: String, - } // https://binance-docs.github.io/apidocs/futures/en/#mark-price-stream // https://binance-docs.github.io/apidocs/delivery/en/#mark-price-stream @@ -598,7 +594,6 @@ pub struct MarkPriceEvent { pub symbol: String, } - // Object({"E": Number(1626118018407), "e": String("forceOrder"), "o": Object({"S": String("SELL"), "T": Number(1626118018404), "X": String("FILLED"), "ap": String("33028.07"), "f": String("IOC"), "l": String("0.010"), "o": String("LIMIT"), "p": String("32896.00"), "q": String("0.010"), "s": String("BTCUSDT"), "z": String("0.010")})}) // https://binance-docs.github.io/apidocs/futures/en/#liquidation-order-streams @@ -613,7 +608,6 @@ pub struct LiquidationEvent { #[serde(rename = "o")] pub liquidation_order: LiquidationOrder, - } #[derive(Debug, Serialize, Deserialize, Clone)] @@ -779,7 +773,6 @@ pub struct MiniTickerEvent { pub quote_volume: String, } - #[derive(Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] pub struct KlineEvent { @@ -817,7 +810,6 @@ pub struct ContinuousKlineEvent { pub kline: ContinuousKline, } - // https://binance-docs.github.io/apidocs/delivery/en/#index-kline-candlestick-streams #[derive(Debug, Serialize, Deserialize, Clone)] @@ -869,7 +861,7 @@ pub struct Kline { #[serde(rename = "T")] pub end_time: i64, - + #[serde(rename = "s")] pub symbol: String, @@ -1165,7 +1157,7 @@ pub(crate) mod string_or_float { } else { s.parse().map_err(de::Error::custom) } - }, + } StringOrFloat::Float(i) => Ok(i), } } @@ -1183,7 +1175,7 @@ pub(crate) mod string_or_float_opt { { match value { Some(v) => crate::model::string_or_float::serialize(v, serializer), - None => serializer.serialize_none() + None => serializer.serialize_none(), } } @@ -1198,7 +1190,9 @@ pub(crate) mod string_or_float_opt { Float(f64), } - Ok(Some(crate::model::string_or_float::deserialize(deserializer)?)) + Ok(Some(crate::model::string_or_float::deserialize( + deserializer, + )?)) } } @@ -1208,16 +1202,16 @@ pub(crate) mod string_or_bool { use serde::{de, Serializer, Deserialize, Deserializer}; pub fn serialize(value: &T, serializer: S) -> Result - where - T: fmt::Display, - S: Serializer, + where + T: fmt::Display, + S: Serializer, { serializer.collect_str(value) } pub fn deserialize<'de, D>(deserializer: D) -> Result - where - D: Deserializer<'de>, + where + D: Deserializer<'de>, { #[derive(Deserialize)] #[serde(untagged)] From 253fb5f1293ff354d1788fcf3f91d8335ba1dec8 Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:40:02 +0300 Subject: [PATCH 2/6] typo fix --- src/model.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/model.rs b/src/model.rs index cf0e0731..e5e44978 100644 --- a/src/model.rs +++ b/src/model.rs @@ -440,7 +440,7 @@ pub struct OrderTradeEvent { pub commission: String, #[serde(skip, rename = "N")] - pub asset_commisioned: Option, + pub asset_commissioned: Option, #[serde(rename = "T")] pub trade_order_time: u64, From 42e91e92976b1bcce7f7f286aec1fd820a2a8195 Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:41:32 +0300 Subject: [PATCH 3/6] remove skip commission asset field --- src/model.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/model.rs b/src/model.rs index e5e44978..d457da1d 100644 --- a/src/model.rs +++ b/src/model.rs @@ -439,8 +439,8 @@ pub struct OrderTradeEvent { #[serde(rename = "n")] pub commission: String, - #[serde(skip, rename = "N")] - pub asset_commissioned: Option, + #[serde(rename = "N")] + pub commission_asset: Option, #[serde(rename = "T")] pub trade_order_time: u64, From 8c914792468b763c4018326f45f2905a75fdb49d Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:48:02 +0300 Subject: [PATCH 4/6] add missing cumulative quote asset transacted quantity --- src/model.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/model.rs b/src/model.rs index d457da1d..cc9b4db2 100644 --- a/src/model.rs +++ b/src/model.rs @@ -430,8 +430,8 @@ pub struct OrderTradeEvent { #[serde(rename = "l")] pub qty_last_filled_trade: String, - #[serde(rename = "z")] - pub accumulated_qty_filled_trades: String, + #[serde(rename = "Z", with = "string_or_float")] + pub cumulative_quote_transacted_qty: f64, #[serde(rename = "L")] pub price_last_filled_trade: String, From c5c234bfa31a4b58592c094db59efdda9cbbba86 Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:49:26 +0300 Subject: [PATCH 5/6] transform fields types to lib's standard --- src/model.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/model.rs b/src/model.rs index cc9b4db2..3e81bbd2 100644 --- a/src/model.rs +++ b/src/model.rs @@ -397,11 +397,11 @@ pub struct OrderTradeEvent { #[serde(rename = "f")] pub time_in_force: String, - #[serde(rename = "q")] - pub qty: String, + #[serde(rename = "q", with = "string_or_float")] + pub qty: f64, - #[serde(rename = "p")] - pub price: String, + #[serde(rename = "p", with = "string_or_float")] + pub price: f64, #[serde(skip, rename = "P")] pub p_ignore: String, @@ -427,17 +427,20 @@ pub struct OrderTradeEvent { #[serde(rename = "i")] pub order_id: u64, - #[serde(rename = "l")] - pub qty_last_filled_trade: String, + #[serde(rename = "l", with = "string_or_float")] + pub qty_last_filled_trade: f64, + + #[serde(rename = "z", with = "string_or_float")] + pub cumulative_filled_qty: f64, #[serde(rename = "Z", with = "string_or_float")] pub cumulative_quote_transacted_qty: f64, - #[serde(rename = "L")] - pub price_last_filled_trade: String, + #[serde(rename = "L", with = "string_or_float")] + pub price_last_filled_trade: f64, - #[serde(rename = "n")] - pub commission: String, + #[serde(rename = "n", with = "string_or_float")] + pub commission: f64, #[serde(rename = "N")] pub commission_asset: Option, From 5d3dc9d428e8f4f9ea4fcc9b3ca07907f34e31bf Mon Sep 17 00:00:00 2001 From: Viktor Kulikov Date: Thu, 2 Sep 2021 00:52:25 +0300 Subject: [PATCH 6/6] remove redundant `new` prefix --- src/model.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/model.rs b/src/model.rs index 3e81bbd2..4d369618 100644 --- a/src/model.rs +++ b/src/model.rs @@ -386,7 +386,7 @@ pub struct OrderTradeEvent { pub symbol: String, #[serde(rename = "c")] - pub new_client_order_id: String, + pub client_order_id: String, #[serde(rename = "S")] pub side: String,