1use borsh::{BorshDeserialize, BorshSerialize};
2
3#[derive(BorshDeserialize, BorshSerialize, Copy, Clone, PartialEq, Eq, Debug)]
4pub enum Side {
5 Bid,
6 Ask,
7}
8
9impl Side {
10 pub fn opposite(&self) -> Self {
11 match *self {
12 Side::Bid => Side::Ask,
13 Side::Ask => Side::Bid,
14 }
15 }
16
17 pub fn from_order_sequence_number(order_id: u64) -> Self {
18 match order_id.leading_zeros() {
19 0 => Side::Bid,
20 _ => Side::Ask,
21 }
22 }
23}
24
25#[derive(BorshDeserialize, BorshSerialize, Copy, Clone, PartialEq, Eq, Debug)]
26pub enum SelfTradeBehavior {
27 Abort,
28 CancelProvide,
29 DecrementTake,
30}