perpl_sdk/state/l3_book/
order.rs1use std::ops::{Deref, DerefMut};
4
5use crate::{state::Order, types};
6
7#[derive(Clone, Debug)]
12pub struct BookOrder {
13 order: Order,
14 prev: Option<types::OrderId>,
16 next: Option<types::OrderId>,
18}
19
20impl BookOrder {
21 pub fn new(order: Order) -> Self { Self { order, prev: None, next: None } }
23
24 pub(crate) fn prev(&self) -> Option<types::OrderId> { self.prev }
26
27 pub(crate) fn next(&self) -> Option<types::OrderId> { self.next }
29
30 pub(crate) fn update_order(&mut self, order: Order) { self.order = order; }
32
33 pub(crate) fn set_prev(&mut self, prev: Option<types::OrderId>) { self.prev = prev; }
35
36 pub(crate) fn set_next(&mut self, next: Option<types::OrderId>) { self.next = next; }
38}
39
40impl Deref for BookOrder {
41 type Target = Order;
42
43 fn deref(&self) -> &Self::Target { &self.order }
44}
45
46impl DerefMut for BookOrder {
47 fn deref_mut(&mut self) -> &mut Self::Target { &mut self.order }
48}