sbe 0.0.2

Rust library for working with Simple Binary Encoding (SBE) data.
Documentation
use crate::types::Order;
use byteorder::{LittleEndian, ReadBytesExt};
use std::io::Cursor;

pub fn decode_order(data: &[u8]) -> Option<Order> {
    if data.len() < 22 {
        return None;
    }

    let mut rdr = Cursor::new(data);
    let order_id = rdr.read_u64::<LittleEndian>().ok()?;
    let quantity = rdr.read_u32::<LittleEndian>().ok()?;
    let price = rdr.read_f64::<LittleEndian>().ok()?;
    let version = rdr.read_u16::<LittleEndian>().ok()?;

    Some(Order {
        order_id,
        quantity,
        price,
        version,
    })
}