@@ -2567,8 +2567,8 @@ mod impl_schemars {
25672567#[ cfg( feature = "rand" ) ]
25682568mod impl_rand {
25692569 use super :: { NotNan , OrderedFloat } ;
2570- use rand:: distributions :: uniform:: * ;
2571- use rand:: distributions :: { Distribution , Open01 , OpenClosed01 , Standard } ;
2570+ use rand:: distr :: uniform:: * ;
2571+ use rand:: distr :: { Distribution , Open01 , OpenClosed01 , StandardUniform } ;
25722572 use rand:: Rng ;
25732573
25742574 macro_rules! impl_distribution {
@@ -2592,7 +2592,7 @@ mod impl_rand {
25922592 }
25932593 }
25942594
2595- impl_distribution ! { Standard , f32 , f64 }
2595+ impl_distribution ! { StandardUniform , f32 , f64 }
25962596 impl_distribution ! { Open01 , f32 , f64 }
25972597 impl_distribution ! { OpenClosed01 , f32 , f64 }
25982598
@@ -2638,14 +2638,17 @@ mod impl_rand {
26382638 ( $f: ty) => {
26392639 impl UniformSampler for UniformNotNan <$f> {
26402640 type X = NotNan <$f>;
2641- fn new<B1 , B2 >( low: B1 , high: B2 ) -> Self
2641+ fn new<B1 , B2 >( low: B1 , high: B2 ) -> Result < Self , Error >
26422642 where
26432643 B1 : SampleBorrow <Self :: X > + Sized ,
26442644 B2 : SampleBorrow <Self :: X > + Sized ,
26452645 {
2646- UniformNotNan ( UniformFloat :: <$f>:: new( low. borrow( ) . 0 , high. borrow( ) . 0 ) )
2646+ Ok ( UniformNotNan ( UniformFloat :: <$f>:: new(
2647+ low. borrow( ) . 0 ,
2648+ high. borrow( ) . 0 ,
2649+ ) ?) )
26472650 }
2648- fn new_inclusive<B1 , B2 >( low: B1 , high: B2 ) -> Self
2651+ fn new_inclusive<B1 , B2 >( low: B1 , high: B2 ) -> Result < Self , Error >
26492652 where
26502653 B1 : SampleBorrow <Self :: X > + Sized ,
26512654 B2 : SampleBorrow <Self :: X > + Sized ,
@@ -2660,14 +2663,17 @@ mod impl_rand {
26602663
26612664 impl UniformSampler for UniformOrdered <$f> {
26622665 type X = OrderedFloat <$f>;
2663- fn new<B1 , B2 >( low: B1 , high: B2 ) -> Self
2666+ fn new<B1 , B2 >( low: B1 , high: B2 ) -> Result < Self , Error >
26642667 where
26652668 B1 : SampleBorrow <Self :: X > + Sized ,
26662669 B2 : SampleBorrow <Self :: X > + Sized ,
26672670 {
2668- UniformOrdered ( UniformFloat :: <$f>:: new( low. borrow( ) . 0 , high. borrow( ) . 0 ) )
2671+ Ok ( UniformOrdered ( UniformFloat :: <$f>:: new(
2672+ low. borrow( ) . 0 ,
2673+ high. borrow( ) . 0 ,
2674+ ) ?) )
26692675 }
2670- fn new_inclusive<B1 , B2 >( low: B1 , high: B2 ) -> Self
2676+ fn new_inclusive<B1 , B2 >( low: B1 , high: B2 ) -> Result < Self , Error >
26712677 where
26722678 B1 : SampleBorrow <Self :: X > + Sized ,
26732679 B2 : SampleBorrow <Self :: X > + Sized ,
@@ -2690,19 +2696,19 @@ mod impl_rand {
26902696
26912697 fn sample_fuzz < T > ( )
26922698 where
2693- Standard : Distribution < NotNan < T > > ,
2699+ StandardUniform : Distribution < NotNan < T > > ,
26942700 Open01 : Distribution < NotNan < T > > ,
26952701 OpenClosed01 : Distribution < NotNan < T > > ,
2696- Standard : Distribution < OrderedFloat < T > > ,
2702+ StandardUniform : Distribution < OrderedFloat < T > > ,
26972703 Open01 : Distribution < OrderedFloat < T > > ,
26982704 OpenClosed01 : Distribution < OrderedFloat < T > > ,
26992705 T : crate :: Float ,
27002706 {
2701- let mut rng = rand:: thread_rng ( ) ;
2702- let f1: NotNan < T > = rng. sample ( Standard ) ;
2707+ let mut rng = rand:: rng ( ) ;
2708+ let f1: NotNan < T > = rng. sample ( StandardUniform ) ;
27032709 let f2: NotNan < T > = rng. sample ( Open01 ) ;
27042710 let f3: NotNan < T > = rng. sample ( OpenClosed01 ) ;
2705- let _: OrderedFloat < T > = rng. sample ( Standard ) ;
2711+ let _: OrderedFloat < T > = rng. sample ( StandardUniform ) ;
27062712 let _: OrderedFloat < T > = rng. sample ( Open01 ) ;
27072713 let _: OrderedFloat < T > = rng. sample ( OpenClosed01 ) ;
27082714 assert ! ( !f1. into_inner( ) . is_nan( ) ) ;
@@ -2727,24 +2733,24 @@ mod impl_rand {
27272733 NotNan :: new ( 0f64 ) . unwrap ( ) ,
27282734 NotNan :: new ( f64:: INFINITY ) . unwrap ( ) ,
27292735 ) ;
2730- let uniform = Uniform :: new ( low, high) ;
2731- let _ = uniform. sample ( & mut rand:: thread_rng ( ) ) ;
2736+ let uniform = Uniform :: new ( low, high) . unwrap ( ) ;
2737+ let _ = uniform. sample ( & mut rand:: rng ( ) ) ;
27322738 }
27332739
27342740 #[ test]
27352741 #[ should_panic]
27362742 fn uniform_sampling_panic_on_infinity_ordered ( ) {
27372743 let ( low, high) = ( OrderedFloat ( 0f64 ) , OrderedFloat ( f64:: INFINITY ) ) ;
2738- let uniform = Uniform :: new ( low, high) ;
2739- let _ = uniform. sample ( & mut rand:: thread_rng ( ) ) ;
2744+ let uniform = Uniform :: new ( low, high) . unwrap ( ) ;
2745+ let _ = uniform. sample ( & mut rand:: rng ( ) ) ;
27402746 }
27412747
27422748 #[ test]
27432749 #[ should_panic]
27442750 fn uniform_sampling_panic_on_nan_ordered ( ) {
27452751 let ( low, high) = ( OrderedFloat ( 0f64 ) , OrderedFloat ( f64:: NAN ) ) ;
2746- let uniform = Uniform :: new ( low, high) ;
2747- let _ = uniform. sample ( & mut rand:: thread_rng ( ) ) ;
2752+ let uniform = Uniform :: new ( low, high) . unwrap ( ) ;
2753+ let _ = uniform. sample ( & mut rand:: rng ( ) ) ;
27482754 }
27492755 }
27502756}
0 commit comments