Skip to main content

xapi_okx/data/
ticker.rs

1use crate::data::instrument_type::OkxInstrumentType;
2use chrono::{DateTime, Utc};
3use rust_decimal::Decimal;
4use serde::Deserialize;
5use serde_with::{TimestampMilliSeconds, formats::Flexible};
6use xapi_shared::data::crypto_symbol::CryptoSymbol;
7
8#[serde_with::serde_as]
9#[derive(Debug, Deserialize)]
10#[serde(rename_all = "camelCase")]
11pub struct OkxTicker {
12    #[serde(rename = "instType")]
13    pub instrument_type: OkxInstrumentType,
14    #[serde(rename = "instId")]
15    pub instrument_id: CryptoSymbol,
16    pub last: Decimal,
17    #[serde(rename = "lastSz")]
18    pub last_size: Decimal,
19    #[serde(rename = "askPx")]
20    pub ask_price: Decimal,
21    #[serde(rename = "askSz")]
22    pub ask_size: Decimal,
23    #[serde(rename = "bidPx")]
24    pub bid_price: Decimal,
25    #[serde(rename = "bidSz")]
26    pub bid_size: Decimal,
27    #[serde(rename = "open24h")]
28    pub open_24h: Decimal,
29    #[serde(rename = "high24h")]
30    pub high_24h: Decimal,
31    #[serde(rename = "low24h")]
32    pub low_24h: Decimal,
33    #[serde(rename = "volCcy24h")]
34    pub volume_currency_24h: Decimal,
35    #[serde(rename = "vol24h")]
36    pub volume_24h: Decimal,
37    #[serde(rename = "sodUtc0")]
38    pub start_of_day_utc0: Decimal,
39    #[serde(rename = "sodUtc8")]
40    pub start_of_day_utc8: Decimal,
41    #[serde_as(as = "TimestampMilliSeconds<String, Flexible>")]
42    pub ts: DateTime<Utc>,
43}