use std::fmt;
use serde::Deserialize;
mod dex_connector;
mod dex_request;
mod dex_websocket;
mod rabbitx_connector;
pub use dex_connector::DexConnector;
pub use dex_request::DexError;
pub use rabbitx_connector::*;
#[derive(Debug, Clone, PartialEq, Default, Deserialize)]
pub enum OrderSide {
#[default]
Long,
Short,
}
impl fmt::Display for OrderSide {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
OrderSide::Long => write!(f, "long"),
OrderSide::Short => write!(f, "short"),
}
}
}
#[derive(Deserialize, Debug, Default)]
pub struct CommonErrorResponse {
pub message: Option<String>,
}
#[derive(Deserialize, Debug, Default)]
pub struct TickerResponse {
pub symbol: String,
pub price: f64,
pub min_tick: f64,
pub min_order: f64,
}
#[derive(Deserialize, Debug, Default)]
pub struct FilledOrder {
pub order_id: String,
pub filled_side: OrderSide,
pub filled_size: f64,
pub filled_value: f64,
pub filled_fee: f64,
}
#[derive(Deserialize, Debug, Default)]
pub struct FilledOrdersResponse {
pub orders: Vec<FilledOrder>,
}
#[derive(Deserialize, Debug, Default)]
pub struct BalanceResponse {
pub equity: f64,
pub balance: f64,
}
#[derive(Deserialize, Debug, Default)]
pub struct CreateOrderResponse {
pub order_id: String,
pub ordered_price: f64,
pub ordered_size: f64,
}