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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//! The history module contains the `VariablesDataHistory` struct,
//! which is used to store and manage historical data associated with various variables.
use HashMap;
use ;
use crateFoxVariables;
/// A struct representing a dataset with associated historical timestamp information.
///
/// This generic struct is used to store a piece of data along with the specific date and time
/// when the data is relevant or recorded.
///
/// # Type Parameters
/// - `T`: The type of the data being stored in the dataset.
///
/// # Fields
/// - `date_time` (`DateTime<Utc>`):
/// The UTC timestamp indicating the date and time when the data was recorded or is relevant.
/// - `data` (`T`):
/// The actual data being stored, which can be of any type (as specified by the generic parameter `T`).
///
/// # Example
/// ```rust
/// use chrono::Utc;
/// use chrono::DateTime;
/// use foxess::VariableDataSet;
///
/// let timestamp = Utc::now();
/// let dataset = VariableDataSet {
/// date_time: timestamp,
/// data: 56,
/// };
///
/// println!("Timestamp: {}, Data: {}", dataset.date_time, dataset.data);
/// ```
/// A structure that maintains a historical record of variable data.
///
/// The `VariablesDataHistory` struct is used to store and manage historical data
/// associated with various variables. The historical data is stored as a mapping
/// between `FoxVariables` keys and their corresponding series of data points.
///
/// # Fields
///
/// * `series` - A `HashMap` where:
/// - The key is of type `FoxVariables`, representing the variable being tracked.
/// - The value is a `Vec` of `VariableDataSet<f64>`, representing a series of
/// historical data points associated with the corresponding variable.
///
/// # Visibility
///
/// The `series` field is marked with `pub(crate)`, meaning it is publicly accessible
/// within the same crate but is not exposed publicly outside of it.