diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-14 23:27:35 +0100 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-14 23:27:35 +0100 |
commit | 75899b8b625db2f048dbaa75a0cb45a67a1bfd75 (patch) | |
tree | 45b003df115bec2d17a64207c2a14cc0323c3ba7 /lib | |
parent | c966137cc4b64855f109f7b0eae3327d198b1f1d (diff) | |
download | generate-random-75899b8b625db2f048dbaa75a0cb45a67a1bfd75.tar.xz |
Add support for Ranges
Diffstat (limited to 'lib')
-rw-r--r-- | lib/src/lib.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/src/lib.rs b/lib/src/lib.rs index b25f91e..d8ec04f 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -149,6 +149,41 @@ impl<T: GenerateRandom> GenerateRandom for Box<T> { } } +impl<T: GenerateRandom> GenerateRandom for std::ops::Range<T> { + fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { + T::generate_random(rng)..T::generate_random(rng) + } +} + +impl<T: GenerateRandom> GenerateRandom for std::ops::RangeFrom<T> { + fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { + T::generate_random(rng).. + } +} + +impl GenerateRandom for std::ops::RangeFull { + fn generate_random<R: rand::Rng + ?Sized>(_rng: &mut R) -> Self { + .. + } +} + +impl<T: GenerateRandom> GenerateRandom for std::ops::RangeInclusive<T> { + fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { + T::generate_random(rng)..=T::generate_random(rng) + } +} + +impl<T: GenerateRandom> GenerateRandom for std::ops::RangeTo<T> { + fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { + ..T::generate_random(rng) + } +} +impl<T: GenerateRandom> GenerateRandom for std::ops::RangeToInclusive<T> { + fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { + ..=T::generate_random(rng) + } +} + #[cfg(feature = "enumset")] impl<T: enumset::EnumSetType + GenerateRandom> GenerateRandom for enumset::EnumSet<T> { fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self { |