hdp_primitives/task/datalake/transactions/
rand.rs1use rand::distributions::{Distribution, Standard};
2
3use crate::task::datalake::DatalakeField;
4
5use super::{TransactionField, TransactionReceiptField, TransactionsCollection};
6
7impl Distribution<TransactionsCollection> for Standard {
8 fn sample<R: rand::prelude::Rng + ?Sized>(&self, rng: &mut R) -> TransactionsCollection {
9 let index: u8 = rng.gen_range(0..1);
11 match index {
12 0 => TransactionsCollection::Transactions(self.sample(rng)),
13 1 => TransactionsCollection::TranasactionReceipts(self.sample(rng)),
14 _ => unreachable!(),
15 }
16 }
17}
18
19impl Distribution<TransactionField> for Standard {
20 fn sample<R: rand::prelude::Rng + ?Sized>(&self, rng: &mut R) -> TransactionField {
21 let index: u8 = rng.gen_range(0..=6_u8);
22 TransactionField::integer_variants_index(index)
23 }
24}
25
26impl Distribution<TransactionReceiptField> for Standard {
27 fn sample<R: rand::prelude::Rng + ?Sized>(&self, rng: &mut R) -> TransactionReceiptField {
28 let index: u8 = rng.gen_range(0..=1_u8);
29 TransactionReceiptField::from_index(index).unwrap()
30 }
31}