crypto-msg-parser 1.0.1

Parse websocket messages
Documentation
mod utils;

use crypto_msg_parser::{parse_trade, MarketType, TradeSide};

#[test]
fn trade() {
    let raw_msg = r#"{"params":{"symbol":"btc_usdt","type":"order","_CDID":"100002","dataType":"1"},"action":"Pushdata.order","data":[{"id":"1616299593889","t":"12:06:33","T":1616299593,"p":"57625.22","n":"0.0890","s":"sell"},{"id":"1616299593297","t":"12:06:33","T":1616299593,"p":"57625.23","n":"0.0049","s":"buy"}],"time":1616299594334}"#;
    let trades = &parse_trade("bitz", MarketType::Spot, raw_msg).unwrap();

    assert_eq!(trades.len(), 2);

    for trade in trades.iter() {
        crate::utils::check_trade_fields("bitz", MarketType::Spot, "BTC/USDT".to_string(), trade);

        assert_eq!(trade.volume, trade.price * trade.quantity);
    }

    assert_eq!(trades[0].side, TradeSide::Sell);
    assert_eq!(trades[1].side, TradeSide::Buy);
}