use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct ApiResponse<R> {
pub result: Vec<R>,
pub meta: Meta, }
#[derive(Debug, Serialize, Deserialize)]
pub struct Protocols {
pub protocol_name: String,
pub result: Vec<ChainValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ChainValue {
pub chain_id: Option<u64>, pub value_usd: f64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Meta {}
#[derive(Debug, Serialize, Deserialize)]
pub struct Candle {
pub timestamp: u64,
pub open: f64,
pub low: f64,
pub avg: f64,
pub high: f64,
pub close: f64,
}
pub enum Granularity {
Month,
Week,
Day,
Hour4,
Hour,
Min15,
Min5,
}
impl From<Granularity> for String {
fn from(granularity: Granularity) -> Self {
match granularity {
Granularity::Month => "month",
Granularity::Week => "week",
Granularity::Day => "day",
Granularity::Hour4 => "4hour",
Granularity::Hour => "hour",
Granularity::Min15 => "15min",
Granularity::Min5 => "5min",
}
.to_string()
}
}