1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// devela::num::prob::rand
//
// public
//!
//! Random sources, value construction, qualities, and pseudo-random generators.
//!
//! # Traits
//!
//! - [`RandTry`] and [`Rand`] define fallible and infallible random sources.
//! - [`RandQualities`] describes source behavior and suitability.
// - [`RandSeedable`] and [`RandSeedableTry`] construct generators from explicit
// seed material or another random source.
//! - [`FromRandTry`] and [`FromRand`] construct random values.
//!
//! # Canonical generators
//!
//! Devela keeps two complementary PRNGs always available:
//! - [`Pcg32`] is the canonical general-purpose generator.
//! - [`SplitMix64`] is the canonical seed mixer and expander,
//! and also provides a compact 64-bit random stream.
//!
//! Other generators cover specialized, small-state, legacy, and comparative uses.
//! Their [`RandQualities`] indicate known limitations and suitability.
//!
//! All PRNG types implement [`Copy`]. Copying a PRNG duplicates its current
//! state, so both copies produce the same stream until advanced differently.
//!
//! Some generators are retained for small-device, legacy, educational, or
//! comparative uses despite known generator-side limitations. These are
//! classified with [`RandQualities::WEAK_PRNG`].
//!
//! `Default` and [`ConstInit`][crate::ConstInit] use fixed seeds and are therefore
//! reproducible. Use explicit or externally sourced seed material when distinct
//! streams are required.
//!
//! # Seed representation
//!
//! Byte-backed seeds interpret multi-byte values in little-endian order.
//! This keeps equal seed bytes reproducible across target endianness.
//!
//! # Features
//!
//! - [`Pcg32`] and [`SplitMix64`] are always available.
//! - The `rand` feature enables the extended PRNG palette and generator macros.
//! - The `std` feature enables [`StdRand`].
//
// (_impl_dep_rand_core)
// FromRandTry, FromRand
// mod noise; // Structured deterministic randomness
// concrete PRNGs
// RandSeedable, RandTry, Rand
// RandQualities
// StdRand
// RandFake
cratestructural_mods!