use serde::{Deserialize, Serialize};
use crate::error::Result;
use super::build_client;
use super::models::PaginatedResponse;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct EconomicDataPoint {
pub date: Option<String>,
pub value: Option<f64>,
pub period: Option<String>,
}
pub async fn inflation(params: &[(&str, &str)]) -> Result<PaginatedResponse<EconomicDataPoint>> {
let client = build_client()?;
client.get("/v1/indicators/economy/inflation", params).await
}
pub async fn inflation_expectations(
params: &[(&str, &str)],
) -> Result<PaginatedResponse<EconomicDataPoint>> {
let client = build_client()?;
client
.get("/v1/indicators/economy/inflation-expectations", params)
.await
}
pub async fn labor_market(params: &[(&str, &str)]) -> Result<PaginatedResponse<EconomicDataPoint>> {
let client = build_client()?;
client
.get("/v1/indicators/economy/labor-market", params)
.await
}
pub async fn treasury_yields(
params: &[(&str, &str)],
) -> Result<PaginatedResponse<EconomicDataPoint>> {
let client = build_client()?;
client
.get("/v1/indicators/economy/treasury-yields", params)
.await
}