use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FundingRate {
#[serde(rename = "market_id")]
pub market_id: i32,
#[serde(rename = "exchange")]
pub exchange: Exchange,
#[serde(rename = "symbol")]
pub symbol: String,
#[serde(rename = "rate")]
pub rate: f64,
}
impl FundingRate {
pub fn new(market_id: i32, exchange: Exchange, symbol: String, rate: f64) -> FundingRate {
FundingRate {
market_id,
exchange,
symbol,
rate,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Exchange {
#[serde(rename = "binance")]
Binance,
#[serde(rename = "bybit")]
Bybit,
#[serde(rename = "hyperliquid")]
Hyperliquid,
#[serde(rename = "lighter")]
Lighter,
}
impl Default for Exchange {
fn default() -> Exchange {
Self::Binance
}
}