shuttle_engine/scheduler/data/
fixed.rs1use crate::scheduler::data::random::RandomDataSource;
2use crate::scheduler::data::DataSource;
3
4#[derive(Debug)]
7pub struct FixedDataSource {
8 seed: u64,
9 data_source: RandomDataSource,
10}
11
12impl FixedDataSource {
13 fn new_from_seed(seed: u64) -> Self {
14 Self {
15 seed,
16 data_source: RandomDataSource::initialize(seed),
17 }
18 }
19}
20
21impl DataSource for FixedDataSource {
22 type Seed = u64;
23
24 fn initialize(seed: Self::Seed) -> Self {
25 Self::new_from_seed(seed)
26 }
27
28 fn reinitialize(&mut self) -> Self::Seed {
29 self.data_source = RandomDataSource::initialize(self.seed);
30 self.data_source.reinitialize()
31 }
32
33 fn next_u64(&mut self) -> u64 {
34 self.data_source.next_u64()
35 }
36}