use std::collections::BTreeMap;
use anyhow::Result;
use super::models::{MarketTickers, RestApi};
use crate::client::OkxClient;
impl OkxClient {
pub async fn public_instruments<T>(
&self,
inst_type: T,
uly: Option<T>,
inst_family: Option<T>,
inst_id: Option<T>,
) -> Result<RestApi<MarketTickers>>
where
T: Into<String>,
{
let mut params: BTreeMap<String, String> = BTreeMap::new();
if let Some(uly) = uly {
params.insert("uly".into(), uly.into());
}
if let Some(inst_family) = inst_family {
params.insert("instFamily".into(), inst_family.into());
}
if let Some(inst_id) = inst_id {
params.insert("instId".into(), inst_id.into());
}
params.insert("instType".into(), inst_type.into());
Ok(self
.get::<RestApi<MarketTickers>>("/api/v5/public/instruments", ¶ms)
.await?)
}
}