use derive_getters::Getters;
use serde::{Deserialize, Serialize};
use crate::models::Response;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize, Getters)]
#[serde(rename_all = "camelCase")]
pub struct FeeStatsResponse {
#[serde(rename = "last_ledger")]
pub last_ledger: String,
#[serde(rename = "last_ledger_base_fee")]
pub last_ledger_base_fee: String,
#[serde(rename = "ledger_capacity_usage")]
pub ledger_capacity_usage: String,
#[serde(rename = "fee_charged")]
pub fee_charged: Fee,
#[serde(rename = "max_fee")]
pub max_fee: Fee,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize, Getters)]
#[serde(rename_all = "camelCase")]
pub struct Fee {
pub max: String,
pub min: String,
pub mode: String,
pub p10: String,
pub p20: String,
pub p30: String,
pub p40: String,
pub p50: String,
pub p60: String,
pub p70: String,
pub p80: String,
pub p90: String,
pub p95: String,
pub p99: String,
}
impl Response for FeeStatsResponse {
fn from_json(json: String) -> Result<Self, String> {
serde_json::from_str(&json).map_err(|e| e.to_string())
}
}