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}