ccdata_api/schemas/data_api/
indices_and_reference_rates.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
use serde::Deserialize;
use crate::utils::Market;


pub enum CCIndicesMarket {
    CADLI,
    CCIX,
    CCXRP,
    CCXRPPERP,
}

impl Market for CCIndicesMarket {
    fn to_string(&self) -> String {
        match self {
            CCIndicesMarket::CADLI => String::from("cadli"),
            CCIndicesMarket::CCIX => String::from("ccix"),
            CCIndicesMarket::CCXRP => String::from("CCXRP"),
            CCIndicesMarket::CCXRPPERP => String::from("CCXRPPERP"),
        }
    }
}


// Indices & Reference Rates: Historical OHLCV+


/// Indices & Reference Rates: Historical OHLCV+
#[derive(Deserialize, Debug)]
pub struct CCIndicesOHLCV {
    #[serde(rename = "UNIT")]
    pub unit: String,
    #[serde(rename = "TIMESTAMP")]
    pub timestamp: i64,
    #[serde(rename = "TYPE")]
    pub type_: String,
    #[serde(rename = "MARKET")]
    pub market: String,
    #[serde(rename = "INSTRUMENT")]
    pub instrument: String,
    #[serde(rename = "OPEN")]
    pub open: f64,
    #[serde(rename = "HIGH")]
    pub high: f64,
    #[serde(rename = "LOW")]
    pub low: f64,
    #[serde(rename = "CLOSE")]
    pub close: f64,
    #[serde(rename = "FIRST_MESSAGE_TIMESTAMP")]
    pub first_message_timestamp: i64,
    #[serde(rename = "FIRST_MESSAGE_VALUE")]
    pub first_message_value: f64,
    #[serde(rename = "LAST_MESSAGE_TIMESTAMP")]
    pub last_message_timestamp: i64,
    #[serde(rename = "LAST_MESSAGE_VALUE")]
    pub last_message_value: f64,
    #[serde(rename = "HIGH_MESSAGE_TIMESTAMP")]
    pub high_message_timestamp: i64,
    #[serde(rename = "HIGH_MESSAGE_VALUE")]
    pub high_message_value: f64,
    #[serde(rename = "LOW_MESSAGE_TIMESTAMP")]
    pub low_message_timestamp: i64,
    #[serde(rename = "LOW_MESSAGE_VALUE")]
    pub low_message_value: f64,
    #[serde(rename = "TOTAL_INDEX_UPDATES")]
    pub total_index_updates: i64,
    #[serde(rename = "VOLUME")]
    pub volume: f64,
    #[serde(rename = "VOLUME_TOP_TIER")]
    pub volume_top_tier: f64,
    #[serde(rename = "VOLUME_DIRECT")]
    pub volume_direct: f64,
    #[serde(rename = "VOLUME_TOP_TIER_DIRECT")]
    pub volume_top_tier_direct: f64,
    #[serde(rename = "QUOTE_VOLUME")]
    pub quote: f64,
    #[serde(rename = "QUOTE_VOLUME_TOP_TIER")]
    pub quote_top_tier: f64,
    #[serde(rename = "QUOTE_VOLUME_DIRECT")]
    pub quote_direct: f64,
    #[serde(rename = "QUOTE_VOLUME_TOP_TIER_DIRECT")]
    pub quote_top_tier_direct: f64,
}