alpaca_data/stocks/
model.rs

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