csgoempire 0.1.0

CSGOEmpire REST-API and Socket Bindings
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[repr(i8)]
pub enum TradeStatus {
    Error = -1,
    Pending = 0,
    Received = 1,
    Processing = 2,
    Sending = 3,
    Confirming = 4,
    Sent = 5,
    Completed = 6,
    Declined = 7,
    Cancelled = 8,
    TimedOut = 9,
    Credited = 10,
}

impl Default for TradeStatus {
    fn default() -> Self {
        TradeStatus::Error
    }
}

impl From<i8> for TradeStatus {
    fn from(value: i8) -> Self {
        TradeStatus::from_i8(value)
    }
}

impl From<TradeStatus> for i8 {
    fn from(value: TradeStatus) -> Self {
        value.to_i8()
    }
}

impl TradeStatus {
    pub fn from_i8<V>(value: V) -> Self
    where
        V: Into<i8>,
    {
        match value.into() {
            -1 => TradeStatus::Error,
            0 => TradeStatus::Pending,
            1 => TradeStatus::Received,
            2 => TradeStatus::Processing,
            3 => TradeStatus::Sending,
            4 => TradeStatus::Confirming,
            5 => TradeStatus::Sent,
            6 => TradeStatus::Completed,
            7 => TradeStatus::Declined,
            8 => TradeStatus::Cancelled,
            9 => TradeStatus::TimedOut,
            10 => TradeStatus::Credited,
            _ => TradeStatus::default(),
        }
    }

    pub fn to_i8(&self) -> i8 {
        *self as i8
    }
}