Skip to content

Commit a3e7dcc

Browse files
committed
Make SampleRng extension trait require Sized
All methods already require the bound
1 parent cf287cf commit a3e7dcc

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ pub trait RngCore {
512512
/// (converting that randomness to the desired type and distribution).
513513
///
514514
/// [`RngCore`]: trait.RngCore.html
515-
pub trait Rng: RngCore {
515+
pub trait Rng: RngCore + Sized {
516516
/// Return a random value of a `Rand` type.
517517
///
518518
/// # Example
@@ -526,7 +526,7 @@ pub trait Rng: RngCore {
526526
/// println!("{:?}", rng.gen::<(f64, bool)>());
527527
/// ```
528528
#[inline(always)]
529-
fn gen<T: Rand>(&mut self) -> T where Self: Sized {
529+
fn gen<T: Rand>(&mut self) -> T {
530530
Rand::rand(self)
531531
}
532532

@@ -544,7 +544,7 @@ pub trait Rng: RngCore {
544544
/// println!("{:?}", rng.gen_iter::<(f64, bool)>().take(5)
545545
/// .collect::<Vec<(f64, bool)>>());
546546
/// ```
547-
fn gen_iter<'a, T: Rand>(&'a mut self) -> Generator<'a, T, Self> where Self: Sized {
547+
fn gen_iter<'a, T: Rand>(&'a mut self) -> Generator<'a, T, Self> {
548548
Generator { rng: self, _marker: marker::PhantomData }
549549
}
550550

@@ -572,7 +572,7 @@ pub trait Rng: RngCore {
572572
/// let m: f64 = rng.gen_range(-40.0f64, 1.3e5f64);
573573
/// println!("{}", m);
574574
/// ```
575-
fn gen_range<T: PartialOrd + SampleRange>(&mut self, low: T, high: T) -> T where Self: Sized {
575+
fn gen_range<T: PartialOrd + SampleRange>(&mut self, low: T, high: T) -> T {
576576
assert!(low < high, "Rng::gen_range called with low >= high");
577577
Range::new(low, high).ind_sample(self)
578578
}
@@ -587,7 +587,7 @@ pub trait Rng: RngCore {
587587
/// let mut rng = thread_rng();
588588
/// println!("{}", rng.gen_weighted_bool(3));
589589
/// ```
590-
fn gen_weighted_bool(&mut self, n: u32) -> bool where Self: Sized {
590+
fn gen_weighted_bool(&mut self, n: u32) -> bool {
591591
n <= 1 || self.gen_range(0, n) == 0
592592
}
593593

@@ -601,7 +601,7 @@ pub trait Rng: RngCore {
601601
/// let s: String = thread_rng().gen_ascii_chars().take(10).collect();
602602
/// println!("{}", s);
603603
/// ```
604-
fn gen_ascii_chars<'a>(&'a mut self) -> AsciiGenerator<'a, Self> where Self: Sized {
604+
fn gen_ascii_chars<'a>(&'a mut self) -> AsciiGenerator<'a, Self> {
605605
AsciiGenerator { rng: self }
606606
}
607607

@@ -619,7 +619,7 @@ pub trait Rng: RngCore {
619619
/// println!("{:?}", rng.choose(&choices));
620620
/// assert_eq!(rng.choose(&choices[..0]), None);
621621
/// ```
622-
fn choose<'a, T>(&mut self, values: &'a [T]) -> Option<&'a T> where Self: Sized {
622+
fn choose<'a, T>(&mut self, values: &'a [T]) -> Option<&'a T> {
623623
if values.is_empty() {
624624
None
625625
} else {
@@ -630,7 +630,7 @@ pub trait Rng: RngCore {
630630
/// Return a mutable pointer to a random element from `values`.
631631
///
632632
/// Return `None` if `values` is empty.
633-
fn choose_mut<'a, T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T> where Self: Sized {
633+
fn choose_mut<'a, T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T> {
634634
if values.is_empty() {
635635
None
636636
} else {
@@ -656,7 +656,7 @@ pub trait Rng: RngCore {
656656
/// rng.shuffle(&mut y);
657657
/// println!("{:?}", y);
658658
/// ```
659-
fn shuffle<T>(&mut self, values: &mut [T]) where Self: Sized {
659+
fn shuffle<T>(&mut self, values: &mut [T]) {
660660
let mut i = values.len();
661661
while i >= 2 {
662662
// invariant: elements with index >= i have been locked in place.

0 commit comments

Comments
 (0)