alpaca_data/stocks/
model.rs1use 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}