Skip to main content

tvdata_rs/
metadata.rs

1use time::OffsetDateTime;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum DataSourceKind {
5    Scanner,
6    QuoteWebSocket,
7    HistoryWebSocket,
8    Composed,
9}
10
11#[derive(Debug, Clone, Copy, PartialEq, Eq)]
12pub enum HistoryKind {
13    Snapshot,
14    Native,
15    Derived,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq)]
19pub struct DataLineage {
20    pub source: DataSourceKind,
21    pub history_kind: HistoryKind,
22    pub as_of: OffsetDateTime,
23    pub effective_at: Option<OffsetDateTime>,
24}
25
26impl DataLineage {
27    pub fn new(
28        source: DataSourceKind,
29        history_kind: HistoryKind,
30        as_of: OffsetDateTime,
31        effective_at: Option<OffsetDateTime>,
32    ) -> Self {
33        Self {
34            source,
35            history_kind,
36            as_of,
37            effective_at,
38        }
39    }
40}