reifydb_runtime/context/
mod.rs1pub mod clock;
10pub mod rng;
11
12use clock::{Clock, MockClock};
13use rng::Rng;
14
15use crate::version_epoch::VersionEpoch;
16
17#[derive(Clone)]
18pub struct RuntimeContext {
19 pub clock: Clock,
20 pub rng: Rng,
21 pub version_epoch: VersionEpoch,
22}
23
24impl RuntimeContext {
25 pub fn new(clock: Clock, rng: Rng) -> Self {
26 Self {
27 clock,
28 rng,
29 version_epoch: VersionEpoch::new(),
30 }
31 }
32
33 pub fn with_clock(clock: Clock) -> Self {
34 Self {
35 clock,
36 rng: Rng::default(),
37 version_epoch: VersionEpoch::new(),
38 }
39 }
40
41 pub fn testing(initial_millis: u64, seed: u64) -> Self {
42 Self {
43 clock: Clock::Mock(MockClock::from_millis(initial_millis)),
44 rng: Rng::seeded(seed),
45 version_epoch: VersionEpoch::new(),
46 }
47 }
48}