use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct PriceUpdate {
pub id: String,
#[serde(default)]
pub price: Option<PriceData>,
#[serde(default)]
pub ema_price: Option<PriceData>,
#[serde(default)]
pub metadata: Option<PriceMetadata>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PriceData {
pub conf: String,
pub expo: i64,
pub price: String,
pub publish_time: i64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PriceMetadata {
#[serde(default)]
pub prev_publish_time: Option<i64>,
#[serde(default)]
pub proof_available_time: Option<i64>,
#[serde(default)]
pub slot: Option<u64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PriceUpdatesResponse {
#[serde(default)]
pub binary: Option<BinaryData>,
#[serde(default)]
pub parsed: Option<Vec<PriceUpdate>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BinaryData {
#[serde(default)]
pub data: Option<Vec<String>>,
#[serde(default)]
pub encoding: Option<String>,
}