mod clocks;
mod scheduling;
mod wasi_abi;
use clocks::{DeterministicMonotonicClock, DeterministicWallClock};
use rand_core::SeedableRng;
use rand_pcg::Pcg64Mcg;
pub use scheduling::{
replace_scheduling_functions, replace_scheduling_functions_for_wasi_preview_0,
};
use wasmtime_wasi::WasiCtxBuilder;
pub fn add_determinism_to_wasi_ctx_builder(
wasi_builder: &mut WasiCtxBuilder,
) -> &mut WasiCtxBuilder {
const RANDOM_SEED: u64 = 42; let random = Pcg64Mcg::seed_from_u64(RANDOM_SEED);
wasi_builder
.allow_tcp(false)
.allow_udp(false)
.insecure_random(random.clone())
.secure_random(random)
.wall_clock(DeterministicWallClock)
.monotonic_clock(DeterministicMonotonicClock)
}