Skip to main content

map_rest_order_book

Function map_rest_order_book 

Source
pub fn map_rest_order_book(book: &OrderBookResponse, now: Instant) -> Event
Expand description

Maps a REST order book answer to an [Event::OrderBook] holding an [OrderBook::Snapshot].

BCS gives full books only, so the result is always a snapshot. Levels keep the broker’s order.

§Examples

use std::time::Instant;
use brokapi_bcs_protocol::http::models::OrderBookResponse;
use brokapi_bcs::map::market::map_rest_order_book;
use brokapi_core::{Event, OrderBook};

let resp: OrderBookResponse = serde_json::from_str(
    r#"{"ticker":"SBER","classCode":"TQBR","bids":[{"price":299.9,"quantity":100}],
        "asks":[{"price":300.1,"quantity":50}]}"#,
)
.unwrap();
let Event::OrderBook(OrderBook::Snapshot { bids, asks, .. }) = map_rest_order_book(&resp, Instant::now())
else {
    panic!("a snapshot")
};
assert_eq!((bids.len(), asks.len()), (1, 1));