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.
12
12
"""
13
13
keywords = [" random" , " rng" ]
14
14
categories = [" algorithms" , " no-std" ]
15
+ build = " build.rs"
15
16
16
17
[badges ]
17
18
travis-ci = { repository = " rust-lang-nursery/rand" }
@@ -54,5 +55,8 @@ fuchsia-zircon = { version = "0.3.2", optional = true }
54
55
stdweb = { version = " 0.4" , optional = true }
55
56
wasm-bindgen = { version = " 0.2.12" , optional = true }
56
57
58
+ [build-dependencies ]
59
+ rustc_version = " 0.2"
60
+
57
61
[package .metadata .docs .rs ]
58
62
all-features = true
Original file line number Diff line number Diff line change @@ -117,7 +117,7 @@ optional features are available:
117
117
- ` alloc ` can be used instead of ` std ` to provide ` Vec ` and ` Box ` .
118
118
- ` i128_support ` enables support for generating ` u128 ` and ` i128 ` values.
119
119
- ` 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 ` ).
121
121
- ` serde1 ` enables serialization for some types, via Serde version 1.
122
122
- ` stdweb ` enables support for ` OsRng ` on ` wasm32-unknown-unknown ` via ` stdweb `
123
123
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> {
276
276
}
277
277
}
278
278
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
+
279
286
/// Helper trait similar to [`Borrow`] but implemented
280
287
/// only for SampleUniform and references to SampleUniform in
281
288
/// order to resolve ambiguity issues.
@@ -1060,4 +1067,16 @@ mod tests {
1060
1067
assert_eq ! ( r. inner. low, 2.0 ) ;
1061
1068
assert_eq ! ( r. inner. scale, 5.0 ) ;
1062
1069
}
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
+ }
1063
1082
}
You can’t perform that action at this time.
0 commit comments