bitbank_api/public/
ticker.rs1use super::*;
2
3#[serde_as]
4#[derive(Deserialize, Debug)]
5pub struct Ticker {
6 #[serde_as(deserialize_as = "DefaultOnNull<DisplayFromStr>")]
7 pub sell: f64,
8 #[serde_as(deserialize_as = "DefaultOnNull<DisplayFromStr>")]
9 pub buy: f64,
10 #[serde_as(as = "DisplayFromStr")]
11 pub high: f64,
12 #[serde_as(as = "DisplayFromStr")]
13 pub low: f64,
14 #[serde_as(as = "DisplayFromStr")]
15 pub open: f64,
16 #[serde_as(as = "DisplayFromStr")]
17 pub last: f64,
18 #[serde_as(as = "DisplayFromStr")]
19 pub vol: f64,
20 #[serde_as(as = "TimestampMilliSeconds")]
21 pub timestamp: NaiveDateTime,
22}
23
24#[derive(TypedBuilder)]
25pub struct Params {
26 pair: Pair,
27}
28
29pub async fn get(params: Params) -> anyhow::Result<Ticker> {
30 let pair = params.pair;
31 let path = format!("/{}/ticker", pair);
32 do_get(path).await
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[tokio::test]
40 async fn test() -> anyhow::Result<()> {
41 let params = Params::builder().pair(Pair(XRP, JPY)).build();
42 let _ = get(params).await?;
43 Ok(())
44 }
45}