Skip to content

Commit 431e99d

Browse files
committed
Implement Distribution<usize> for RangeTo(Inclusive)<usize>
1 parent b25b657 commit 431e99d

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/distributions/uniform.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
use std::time::Duration;
112112
#[cfg(not(feature = "std"))]
113113
use core::time::Duration;
114-
use core::ops::{Range, RangeInclusive};
114+
use core::ops::{Range, RangeInclusive, RangeTo, RangeToInclusive};
115115

116116
use crate::Rng;
117117
use crate::distributions::Distribution;
@@ -306,6 +306,18 @@ impl<T: SampleUniform> Distribution<T> for RangeInclusive<T> {
306306
}
307307
}
308308

309+
impl Distribution<usize> for RangeTo<usize> {
310+
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> usize {
311+
<usize as SampleUniform>::Sampler::sample_single(0, self.end, rng)
312+
}
313+
}
314+
315+
impl Distribution<usize> for RangeToInclusive<usize> {
316+
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> usize {
317+
<usize as SampleUniform>::Sampler::sample_single_inclusive(0, self.end, rng)
318+
}
319+
}
320+
309321
/// Helper trait similar to [`Borrow`] but implemented
310322
/// only for SampleUniform and references to SampleUniform in
311323
/// order to resolve ambiguity issues.

0 commit comments

Comments
 (0)