alpaca_data/crypto/
model.rs

1use crate::common::time::Timestamp;
2
3#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
4pub struct Bar {
5    pub t: Option<Timestamp>,
6    pub o: Option<f64>,
7    pub h: Option<f64>,
8    pub l: Option<f64>,
9    pub c: Option<f64>,
10    pub v: Option<f64>,
11    pub n: Option<u64>,
12    pub vw: Option<f64>,
13}
14
15#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
16pub struct Quote {
17    pub t: Option<Timestamp>,
18    pub bp: Option<f64>,
19    pub bs: Option<f64>,
20    pub ap: Option<f64>,
21    #[serde(rename = "as")]
22    pub r#as: Option<f64>,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
26pub struct Trade {
27    pub t: Option<Timestamp>,
28    pub p: Option<f64>,
29    pub s: Option<f64>,
30    pub i: Option<u64>,
31    pub tks: Option<String>,
32}
33
34#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
35pub struct OrderbookLevel {
36    pub p: Option<f64>,
37    pub s: Option<f64>,
38}
39
40#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
41pub struct Orderbook {
42    pub t: Option<Timestamp>,
43    pub b: Option<Vec<OrderbookLevel>>,
44    pub a: Option<Vec<OrderbookLevel>>,
45}
46
47#[allow(non_snake_case)]
48#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
49pub struct Snapshot {
50    pub latestTrade: Option<Trade>,
51    pub latestQuote: Option<Quote>,
52    pub minuteBar: Option<Bar>,
53    pub dailyBar: Option<Bar>,
54    pub prevDailyBar: Option<Bar>,
55}