alpaca_data/options/
model.rs1use 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<u64>,
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 bx: Option<String>,
19 pub bp: Option<f64>,
20 pub bs: Option<u64>,
21 pub ax: Option<String>,
22 pub ap: Option<f64>,
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<f64>,
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<f64>,
40 pub gamma: Option<f64>,
41 pub rho: Option<f64>,
42 pub theta: Option<f64>,
43 pub vega: Option<f64>,
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<f64>,
56}