# Seed and Prng
The type [`Seed`] allows you to determine the [pseudorandomness]. You can either use a fixed
[`Seed`] or a random [`Seed`]:
```rust
use dicetest::Seed;
println!("{:?}", Seed(42));
// Output: Seed(42)
println!("{:?}", Seed::random());
// Output: Seed(8019292413750407764)
```
The [`Seed`] can be used to initialize the [pseudorandom number generator] [`Prng`]. For each
[`Seed`], the [`Prng`] provides a different infinite pseudorandom sequence of `u64`s.
```rust
use dicetest::{Prng, Seed};
fn print_random_values(mut prng: Prng) {
for _ in 0..3 {
print!("{:?}, ", prng.next_number());
}
println!("...");
}
print_random_values(Prng::from_seed(Seed(42)));
// Output: 16628028624323922065, 3476588890713931039, 59688652182557721, ...
print_random_values(Prng::from_seed(Seed(42)));
// Output: 16628028624323922065, 3476588890713931039, 59688652182557721, ...
print_random_values(Prng::from_seed(Seed::random()));
// Output: 4221507577048064061, 15374206214556255352, 4977687432463843847, ...
print_random_values(Prng::from_seed(Seed::random()));
// Output: 11086225885938422405, 9312304973013875005, 1036200222843160301, ...
```
[`Prng`]: https://docs.rs/dicetest/latest/dicetest/struct.Prng.html
[`Seed`]: https://docs.rs/dicetest/latest/dicetest/struct.Seed.html
[pseudorandom number generator]: https://en.wikipedia.org/wiki/Pseudorandom_number_generator
[pseudorandomness]: https://en.wikipedia.org/wiki/Pseudorandomness