# pcg-rs

[](https://crates.io/crates/pcg)
[](https://docs.rs/pcg)

## Synopsis
This is a port of the PCG random number generation libary, made for C and C++,
to Rust.
The library implements the `RngCore` trait, which automatically implements the
`Rng` trait, providing a standard interface to generate and sample random numbers.
_Note_: with the 1.0.0 release of pcg-rs, the old sampling methods have been deprecated,
please use the sampling methods implemented via the `Rng` trait instead.
http://www.pcg-random.org
## Usage
This crate offers `no_std` compatibility through the `std` feature. It is
enabled by default, but if you want to use `no_std`, you can add the package
like this:
```toml
[dependencies.pcg]
version = "4.0"
default-features = false
```
This crate also has optional support for `serde`, which you can enable as a
feature:
```toml
[dependencies.pcg]
version = "4.0"
features = ["std", "serde"]
```
## Example Usage
```rust
use rand::prelude::*;
use pcg::Pcg;
// Initialize the default PCG rng state
let mut rng = Pcg::default();
// Generate some boolean using the standard `gen()` method, which generates the
// appropriate type with type inference
let random_bool: bool = rng.gen();
```