Skip to main content

pragma_common/
trading.rs

1#[derive(
2    Clone, Debug, Hash, PartialEq, PartialOrd, Ord, Eq, Copy, strum::EnumString, strum::Display,
3)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[cfg_attr(
6    feature = "borsh",
7    derive(borsh::BorshSerialize, borsh::BorshDeserialize)
8)]
9#[strum(ascii_case_insensitive, serialize_all = "UPPERCASE")]
10#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
11pub enum Side {
12    Long,
13    Short,
14}
15
16impl Side {
17    pub fn opposite(&self) -> Self {
18        match self {
19            Side::Long => Side::Short,
20            Side::Short => Side::Long,
21        }
22    }
23}