diff --git a/src/distributions/uniform.rs b/src/distributions/uniform.rs index 400c8442c9f..810720267a9 100644 --- a/src/distributions/uniform.rs +++ b/src/distributions/uniform.rs @@ -111,7 +111,7 @@ use std::time::Duration; #[cfg(not(feature = "std"))] use core::time::Duration; -use core::ops::{Range, RangeInclusive}; +use core::ops::{Range, RangeInclusive, RangeTo, RangeToInclusive}; use crate::Rng; use crate::distributions::Distribution; @@ -306,6 +306,18 @@ impl Distribution for RangeInclusive { } } +impl Distribution for RangeTo { + fn sample(&self, rng: &mut R) -> usize { + ::Sampler::sample_single(0, self.end, rng) + } +} + +impl Distribution for RangeToInclusive { + fn sample(&self, rng: &mut R) -> usize { + ::Sampler::sample_single_inclusive(0, self.end, rng) + } +} + /// Helper trait similar to [`Borrow`] but implemented /// only for SampleUniform and references to SampleUniform in /// order to resolve ambiguity issues.