bevy_prng 0.14.2

A crate providing newtyped RNGs for integration into Bevy.
use crate::newtype::newtype_prng;

#[cfg(feature = "bevy_reflect")]
use crate::ReflectRemoteRng;

#[cfg(feature = "bevy_reflect")]
use bevy_reflect::{Reflect, ReflectFromReflect};

#[cfg(feature = "bevy_reflect")]
use bevy_ecs::reflect::ReflectComponent;

#[cfg(all(feature = "serialize", feature = "bevy_reflect"))]
use bevy_reflect::{ReflectDeserialize, ReflectSerialize};

newtype_prng! {
    #[feature = "rand_pcg"]

    /// A [`rand_pcg::Pcg32`] RNG component
    struct Pcg32(rand_pcg::Pcg32);

    /// A [`rand_pcg::Pcg64`] RNG component
    struct Pcg64(rand_pcg::Pcg64);

    /// A [`rand_pcg::Pcg64Mcg`] RNG component
    struct Pcg64Mcg(rand_pcg::Pcg64Mcg);

    /// A [`rand_pcg::Pcg64Dxsm`] RNG component
    struct Pcg64Dxsm(rand_pcg::Pcg64Dxsm);
}