From 3265cb676c5c87fd624f59aaf3ca89d947df8cda Mon Sep 17 00:00:00 2001 From: pommicket Date: Wed, 14 Dec 2022 12:45:48 -0500 Subject: GenRandom --- gen_random/src/lib.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 gen_random/src/lib.rs (limited to 'gen_random/src') diff --git a/gen_random/src/lib.rs b/gen_random/src/lib.rs new file mode 100644 index 0000000..f091ec3 --- /dev/null +++ b/gen_random/src/lib.rs @@ -0,0 +1,28 @@ +extern crate rand; +use rand::Rng; + +pub trait GenRandom: Sized { + fn gen_random(rng: &mut impl Rng) -> Self; + fn gen_thread_random() -> Self { + let mut thread_rng = rand::thread_rng(); + Self::gen_random(&mut thread_rng) + } +} + +impl GenRandom for f32 { + fn gen_random(rng: &mut impl Rng) -> Self { + rng.gen_range(0.0..1.0) + } +} + +impl GenRandom for f64 { + fn gen_random(rng: &mut impl Rng) -> Self { + rng.gen_range(0.0..1.0) + } +} + +impl GenRandom for Box { + fn gen_random(rng: &mut impl Rng) -> Self { + Box::new(T::gen_random(rng)) + } +} -- cgit v1.2.3