bitbank_api/public/
tickers.rs

1use super::*;
2
3pub use super::ticker::Ticker;
4
5#[serde_as]
6#[derive(Deserialize, Debug)]
7struct Raw {
8    #[serde_as(as = "DisplayFromStr")]
9    pub pair: Pair,
10    #[serde(flatten)]
11    pub inner: crate::public::ticker::Ticker,
12}
13
14#[derive(Deserialize, Debug)]
15struct Response(Vec<Raw>);
16
17#[derive(TypedBuilder)]
18pub struct Params {}
19
20pub async fn get(_: Params) -> anyhow::Result<Vec<(Pair, Ticker)>> {
21    let resp: Response = do_get("/tickers".to_owned()).await?;
22    let out = resp.0.into_iter().map(|x| (x.pair, x.inner)).collect();
23    Ok(out)
24}
25
26#[cfg(test)]
27mod tests {
28    use super::*;
29
30    #[tokio::test]
31    async fn test() -> anyhow::Result<()> {
32        let params = Params::builder().build();
33        let x = get(params).await?;
34        dbg!(&x);
35        Ok(())
36    }
37}