alpaca_data/stocks/
model.rs1use rust_decimal::Decimal;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
5pub struct Auction {
6 pub t: Option<String>,
7 pub x: Option<String>,
8 #[serde(
9 default,
10 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
11 )]
12 pub p: Option<Decimal>,
13 pub s: Option<u64>,
14 pub c: Option<String>,
15}
16
17#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
18pub struct DailyAuction {
19 pub d: Option<String>,
20 #[serde(default)]
21 pub o: Vec<Auction>,
22 #[serde(default)]
23 pub c: Vec<Auction>,
24}
25
26#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
27pub struct Bar {
28 pub t: Option<String>,
29 #[serde(
30 default,
31 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
32 )]
33 pub o: Option<Decimal>,
34 #[serde(
35 default,
36 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
37 )]
38 pub h: Option<Decimal>,
39 #[serde(
40 default,
41 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
42 )]
43 pub l: Option<Decimal>,
44 #[serde(
45 default,
46 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
47 )]
48 pub c: Option<Decimal>,
49 pub v: Option<u64>,
50 pub n: Option<u64>,
51 #[serde(
52 default,
53 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
54 )]
55 pub vw: Option<Decimal>,
56}
57
58#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
59pub struct Quote {
60 pub t: Option<String>,
61 pub bx: Option<String>,
62 #[serde(
63 default,
64 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
65 )]
66 pub bp: Option<Decimal>,
67 pub bs: Option<u64>,
68 pub ax: Option<String>,
69 #[serde(
70 default,
71 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
72 )]
73 pub ap: Option<Decimal>,
74 #[serde(rename = "as")]
75 pub r#as: Option<u64>,
76 pub c: Option<Vec<String>>,
77 pub z: Option<String>,
78}
79
80#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
81pub struct Trade {
82 pub t: Option<String>,
83 pub x: Option<String>,
84 #[serde(
85 default,
86 deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number"
87 )]
88 pub p: Option<Decimal>,
89 pub s: Option<u64>,
90 pub i: Option<u64>,
91 pub c: Option<Vec<String>>,
92 pub z: Option<String>,
93 pub u: Option<String>,
94}
95
96#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
97pub struct Snapshot {
98 #[serde(rename = "latestTrade")]
99 pub latest_trade: Option<Trade>,
100 #[serde(rename = "latestQuote")]
101 pub latest_quote: Option<Quote>,
102 #[serde(rename = "minuteBar")]
103 pub minute_bar: Option<Bar>,
104 #[serde(rename = "dailyBar")]
105 pub daily_bar: Option<Bar>,
106 #[serde(rename = "prevDailyBar")]
107 pub prev_daily_bar: Option<Bar>,
108}