File tree Expand file tree Collapse file tree 4 files changed +32
-1
lines changed Expand file tree Collapse file tree 4 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ Random number generators and other randomness functionality.
1212"""
1313keywords = [" random" , " rng" ]
1414categories = [" algorithms" , " no-std" ]
15+ build = " build.rs"
1516
1617[badges ]
1718travis-ci = { repository = " rust-lang-nursery/rand" }
@@ -53,5 +54,8 @@ fuchsia-zircon = { version = "0.3.2", optional = true }
5354stdweb = { version = " 0.4" , optional = true }
5455wasm-bindgen = { version = " 0.2.12" , optional = true }
5556
57+ [build-dependencies ]
58+ rustc_version = " 0.2"
59+
5660[package .metadata .docs .rs ]
5761all-features = true
Original file line number Diff line number Diff line change @@ -117,7 +117,7 @@ optional features are available:
117117- ` alloc ` can be used instead of ` std ` to provide ` Vec ` and ` Box ` .
118118- ` i128_support ` enables support for generating ` u128 ` and ` i128 ` values.
119119- ` log ` enables some logging via the ` log ` crate.
120- - ` nightly ` enables all unstable features (` i128_support ` ).
120+ - ` nightly ` enables all unstable features (` i128_support ` , ` simd_support ` ).
121121- ` serde1 ` enables serialization for some types, via Serde version 1.
122122- ` stdweb ` enables support for ` OsRng ` on ` wasm32-unknown-unknown ` via ` stdweb `
123123 combined with ` cargo-web ` .
Original file line number Diff line number Diff line change 1+ extern crate rustc_version;
2+ use rustc_version:: { version, Version } ;
3+
4+ fn main ( ) {
5+ if version ( ) . unwrap ( ) >= Version :: parse ( "1.27.0" ) . unwrap ( ) {
6+ println ! ( "cargo:rustc-cfg=rust_1_27" ) ;
7+ }
8+ }
Original file line number Diff line number Diff line change @@ -276,6 +276,13 @@ impl<X: SampleUniform> From<::core::ops::Range<X>> for Uniform<X> {
276276 }
277277}
278278
279+ #[ cfg( rust_1_27) ]
280+ impl < X : SampleUniform > From < :: core:: ops:: RangeInclusive < X > > for Uniform < X > {
281+ fn from ( r : :: core:: ops:: RangeInclusive < X > ) -> Uniform < X > {
282+ Uniform :: new_inclusive ( r. start ( ) , r. end ( ) )
283+ }
284+ }
285+
279286/// Helper trait similar to [`Borrow`] but implemented
280287/// only for SampleUniform and references to SampleUniform in
281288/// order to resolve ambiguity issues.
@@ -1060,4 +1067,16 @@ mod tests {
10601067 assert_eq ! ( r. inner. low, 2.0 ) ;
10611068 assert_eq ! ( r. inner. scale, 5.0 ) ;
10621069 }
1070+
1071+ #[ cfg( rust_1_27) ]
1072+ #[ test]
1073+ fn test_uniform_from_std_range_inclusive ( ) {
1074+ let r = Uniform :: from ( 2u32 ..=6 ) ;
1075+ assert_eq ! ( r. inner. low, 2 ) ;
1076+ assert_eq ! ( r. inner. range, 5 ) ;
1077+ let r = Uniform :: from ( 2.0f64 ..=7.0 ) ;
1078+ assert_eq ! ( r. inner. low, 2.0 ) ;
1079+ assert ! ( r. inner. scale > 5.0 ) ;
1080+ assert ! ( r. inner. scale < 5.0 + 1e-14 ) ;
1081+ }
10631082}
You can’t perform that action at this time.
0 commit comments