hdp_primitives/task/datalake/
envelope.rs

1use serde::{Deserialize, Serialize};
2
3use super::{
4    block_sampled::BlockSampledDatalake, transactions::TransactionsInBlockDatalake,
5    DatalakeCollection,
6};
7
8pub type BatchedDatalakes = Vec<DatalakeEnvelope>;
9
10/// Envelope for datalake
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(tag = "type")]
13pub enum DatalakeEnvelope {
14    BlockSampled(BlockSampledDatalake),
15    TransactionsInBlock(TransactionsInBlockDatalake),
16}
17
18impl DatalakeEnvelope {
19    pub fn get_collection_type(&self) -> Box<dyn DatalakeCollection> {
20        match self {
21            DatalakeEnvelope::BlockSampled(datalake) => Box::new(datalake.sampled_property.clone()),
22            DatalakeEnvelope::TransactionsInBlock(datalake) => {
23                Box::new(datalake.sampled_property.clone())
24            }
25        }
26    }
27}
28
29/// Default increment for datalake
30pub fn default_increment() -> u64 {
31    1
32}