use crate::orders::{Order, OrderSide};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)]
pub struct Level {
pub level_id: u32,
pub side: OrderSide,
pub price: f64,
pub volume: f64,
pub orders: Vec<Order>,
}
impl Level {
pub fn new(
level_id: u32,
side: OrderSide,
price: f64,
volume: f64,
orders: Vec<Order>,
) -> Self {
match side {
OrderSide::Bids => Level {
level_id,
side: OrderSide::Bids,
price,
volume,
orders: orders.clone(),
},
OrderSide::Asks => Level {
level_id,
side: OrderSide::Asks,
price,
volume,
orders: orders.clone(),
},
};
Level {
level_id,
side,
price,
volume,
orders,
}
}
}