use std::ops::{Deref, DerefMut};
use crate::{state::Order, types};
#[derive(Clone, Debug)]
pub struct BookOrder {
order: Order,
prev: Option<types::OrderId>,
next: Option<types::OrderId>,
}
impl BookOrder {
pub fn new(order: Order) -> Self { Self { order, prev: None, next: None } }
pub(crate) fn prev(&self) -> Option<types::OrderId> { self.prev }
pub(crate) fn next(&self) -> Option<types::OrderId> { self.next }
pub(crate) fn update_order(&mut self, order: Order) { self.order = order; }
pub(crate) fn set_prev(&mut self, prev: Option<types::OrderId>) { self.prev = prev; }
pub(crate) fn set_next(&mut self, next: Option<types::OrderId>) { self.next = next; }
}
impl Deref for BookOrder {
type Target = Order;
fn deref(&self) -> &Self::Target { &self.order }
}
impl DerefMut for BookOrder {
fn deref_mut(&mut self) -> &mut Self::Target { &mut self.order }
}