use std::str::FromStr; use rust_decimal::Decimal; use rust_decimal::prelude::FromPrimitive; use exchanges::response_base::ResponseData; use crate::{Trade}; pub fn format_trade_items(res_data: &ResponseData) -> Vec { let result = res_data.data["trades_p"].as_array().unwrap(); let mut trades = vec![]; for item in result { let side = item[1] == "Buy"; let size = Decimal::from_str(item[3].as_str().unwrap()).unwrap(); trades.push(Trade { id: item[0].to_string(), time: Decimal::from_i64(item[0].as_i64().unwrap() / 1000 / 1000).unwrap(), size: if side { size } else { -size }, price: Decimal::from_str(item[2].as_str().unwrap().to_string().as_str()).unwrap(), symbol: res_data.data["symbol"].as_str().unwrap().replace("USDT", "_USDT").replace("u1000", "1000"), }) } return trades; }