fmp_rs/models/
charts.rs

1//! Historical price chart models.
2
3use serde::{Deserialize, Serialize};
4
5/// Historical price data (EOD - End of Day)
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7#[serde(rename_all = "camelCase")]
8pub struct HistoricalPrice {
9    pub date: String,
10    pub open: f64,
11    pub high: f64,
12    pub low: f64,
13    pub close: f64,
14    pub adj_close: f64,
15    pub volume: i64,
16    pub unadjusted_volume: i64,
17    pub change: f64,
18    pub change_percent: f64,
19    pub vwap: f64,
20    pub label: String,
21    pub change_over_time: f64,
22}
23
24/// Intraday price data
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
26pub struct IntradayPrice {
27    pub date: String,
28    pub open: f64,
29    pub high: f64,
30    pub low: f64,
31    pub close: f64,
32    pub volume: i64,
33}
34
35/// Historical dividend data
36#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
37#[serde(rename_all = "camelCase")]
38pub struct HistoricalDividend {
39    pub date: String,
40    pub label: String,
41    pub adj_dividend: f64,
42    pub dividend: f64,
43    pub record_date: Option<String>,
44    pub payment_date: Option<String>,
45    pub declaration_date: Option<String>,
46}
47
48/// Stock split data
49#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
50#[serde(rename_all = "camelCase")]
51pub struct StockSplit {
52    pub date: String,
53    pub label: String,
54    pub numerator: f64,
55    pub denominator: f64,
56}