#[cfg(feature = "defi")]
pub mod defi;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CryptoQuote {
pub id: String,
pub symbol: String,
pub name: String,
pub price: Option<f64>,
pub market_cap: Option<f64>,
pub volume_24h: Option<f64>,
pub change_24h: Option<f64>,
pub change_percent_24h: Option<f64>,
pub high_24h: Option<f64>,
pub low_24h: Option<f64>,
pub circulating_supply: Option<f64>,
}
#[cfg(feature = "crypto")]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CoinQuote {
pub id: String,
pub symbol: String,
pub name: String,
pub current_price: Option<f64>,
pub market_cap: Option<f64>,
pub price_change_percentage_24h: Option<f64>,
pub total_volume: Option<f64>,
pub circulating_supply: Option<f64>,
pub image: Option<String>,
pub market_cap_rank: Option<u32>,
}
#[cfg(feature = "crypto")]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct TrendingCoin {
pub id: Option<String>,
pub symbol: Option<String>,
pub name: Option<String>,
pub market_cap_rank: Option<u32>,
pub price_btc: Option<f64>,
pub score: Option<u32>,
}
#[cfg(feature = "crypto")]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct GlobalCryptoStats {
pub active_cryptocurrencies: Option<u32>,
pub markets: Option<u32>,
pub total_market_cap_usd: Option<f64>,
pub total_volume_usd: Option<f64>,
pub btc_dominance: Option<f64>,
pub eth_dominance: Option<f64>,
pub market_cap_change_percentage_24h_usd: Option<f64>,
}