alpaca_data/crypto/
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<f64>,
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 bp: Option<f64>,
19 pub bs: Option<f64>,
20 pub ap: Option<f64>,
21 #[serde(rename = "as")]
22 pub r#as: Option<f64>,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
26pub struct Trade {
27 pub t: Option<Timestamp>,
28 pub p: Option<f64>,
29 pub s: Option<f64>,
30 pub i: Option<u64>,
31 pub tks: Option<String>,
32}
33
34#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
35pub struct OrderbookLevel {
36 pub p: Option<f64>,
37 pub s: Option<f64>,
38}
39
40#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
41pub struct Orderbook {
42 pub t: Option<Timestamp>,
43 pub b: Option<Vec<OrderbookLevel>>,
44 pub a: Option<Vec<OrderbookLevel>>,
45}
46
47#[allow(non_snake_case)]
48#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
49pub struct Snapshot {
50 pub latestTrade: Option<Trade>,
51 pub latestQuote: Option<Quote>,
52 pub minuteBar: Option<Bar>,
53 pub dailyBar: Option<Bar>,
54 pub prevDailyBar: Option<Bar>,
55}