phoenix/state/
enums.rs

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}