usestd::fmt::Debug;pub(crate)modfixed;pub(crate)modrandom;/// A `DataSource` is an oracle for generating non-deterministic data to return to a task that asks
/// for random values.
pubtraitDataSource: Debug {/// A `Seed` can be used to deterministically initialize a data source such that it produces the
/// same sequence of outputs for `next_u64` calls.
typeSeed:Clone;/// Initialize the `DataSource` from a given seed.
fninitialize(seed:Self::Seed)->Self;/// Reinitialize the `DataSource` and return a seed that can be used to return to this state
/// for deterministic replay.
fnreinitialize(&mutself)->Self::Seed;/// Generate the next non-deterministic `u64` value to return to a requesting task.
fnnext_u64(&mutself)->u64;}