use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub enum MarketOrderRange {
#[serde(rename = "1")]
OneJump,
#[serde(rename = "2")]
TwoJumps,
#[serde(rename = "3")]
ThreeJumps,
#[serde(rename = "4")]
FourJumps,
#[serde(rename = "5")]
FiveJumps,
#[serde(rename = "10")]
TenJumps,
#[serde(rename = "20")]
TwentyJumps,
#[serde(rename = "30")]
ThirtyJumps,
#[serde(rename = "40")]
FourtyJumps,
#[serde(rename = "region")]
Region,
#[serde(rename = "solarsystem")]
SolarSystem,
#[serde(rename = "station")]
Station,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub enum HistoricalMarketOrderState {
#[serde(rename = "cancelled")]
Cancelled,
#[serde(rename = "expired")]
Expired,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub enum OrderType {
#[serde(rename = "buy")]
Buy,
#[serde(rename = "sell")]
Sell,
#[serde(rename = "all")]
All,
}
impl fmt::Display for OrderType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let s = match self {
OrderType::Buy => "buy",
OrderType::Sell => "sell",
OrderType::All => "all",
};
write!(f, "{}", s)
}
}
#[cfg(test)]
mod market_enum_tests {
use crate::model::enums::market::OrderType;
#[test]
fn test_order_type_buy_display() {
assert_eq!(OrderType::Buy.to_string(), "buy")
}
#[test]
fn test_order_type_sell_display() {
assert_eq!(OrderType::Sell.to_string(), "sell")
}
#[test]
fn test_order_type_all_display() {
assert_eq!(OrderType::All.to_string(), "all")
}
}