alpaca_data/options/
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<rust_decimal::Decimal>,
7    pub h: Option<rust_decimal::Decimal>,
8    pub l: Option<rust_decimal::Decimal>,
9    pub c: Option<rust_decimal::Decimal>,
10    pub v: Option<u64>,
11    pub n: Option<u64>,
12    pub vw: Option<rust_decimal::Decimal>,
13}
14
15#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
16pub struct Quote {
17    pub t: Option<Timestamp>,
18    pub bx: Option<String>,
19    pub bp: Option<rust_decimal::Decimal>,
20    pub bs: Option<u64>,
21    pub ax: Option<String>,
22    pub ap: Option<rust_decimal::Decimal>,
23    #[serde(rename = "as")]
24    pub r#as: Option<u64>,
25    pub c: Option<String>,
26}
27
28#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
29pub struct Trade {
30    pub t: Option<Timestamp>,
31    pub x: Option<String>,
32    pub p: Option<rust_decimal::Decimal>,
33    pub s: Option<u64>,
34    pub c: Option<String>,
35}
36
37#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
38pub struct Greeks {
39    pub delta: Option<rust_decimal::Decimal>,
40    pub gamma: Option<rust_decimal::Decimal>,
41    pub rho: Option<rust_decimal::Decimal>,
42    pub theta: Option<rust_decimal::Decimal>,
43    pub vega: Option<rust_decimal::Decimal>,
44}
45
46#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
47#[allow(non_snake_case)]
48pub struct Snapshot {
49    pub latestTrade: Option<Trade>,
50    pub latestQuote: Option<Quote>,
51    pub minuteBar: Option<Bar>,
52    pub dailyBar: Option<Bar>,
53    pub prevDailyBar: Option<Bar>,
54    pub greeks: Option<Greeks>,
55    pub impliedVolatility: Option<rust_decimal::Decimal>,
56}