8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
10
11
- //! Helper functions for implementing `Rng ` functions.
11
+ //! Helper functions for implementing `RngCore ` functions.
12
12
//!
13
13
//! For cross-platform reproducibility, these functions all use Little Endian:
14
14
//! least-significant part first. For example, `next_u64_via_u32` takes `u32`
@@ -27,10 +27,10 @@ use core::ptr::copy_nonoverlapping;
27
27
use core:: slice;
28
28
use core:: cmp:: min;
29
29
use core:: mem:: size_of;
30
- use Rng ;
30
+ use RngCore ;
31
31
32
32
/// Implement `next_u64` via `next_u32`, little-endian order.
33
- pub fn next_u64_via_u32 < R : Rng + ?Sized > ( rng : & mut R ) -> u64 {
33
+ pub fn next_u64_via_u32 < R : RngCore + ?Sized > ( rng : & mut R ) -> u64 {
34
34
// Use LE; we explicitly generate one value before the next.
35
35
let x = rng. next_u32 ( ) as u64 ;
36
36
let y = rng. next_u32 ( ) as u64 ;
@@ -59,12 +59,12 @@ macro_rules! fill_bytes_via {
59
59
}
60
60
61
61
/// Implement `fill_bytes` via `next_u32`, little-endian order.
62
- pub fn fill_bytes_via_u32 < R : Rng + ?Sized > ( rng : & mut R , dest : & mut [ u8 ] ) {
62
+ pub fn fill_bytes_via_u32 < R : RngCore + ?Sized > ( rng : & mut R , dest : & mut [ u8 ] ) {
63
63
fill_bytes_via ! ( rng, next_u32, 4 , dest)
64
64
}
65
65
66
66
/// Implement `fill_bytes` via `next_u64`, little-endian order.
67
- pub fn fill_bytes_via_u64 < R : Rng + ?Sized > ( rng : & mut R , dest : & mut [ u8 ] ) {
67
+ pub fn fill_bytes_via_u64 < R : RngCore + ?Sized > ( rng : & mut R , dest : & mut [ u8 ] ) {
68
68
fill_bytes_via ! ( rng, next_u64, 8 , dest)
69
69
}
70
70
@@ -158,12 +158,12 @@ pub fn fill_via_u64_chunks(src: &[u64], dest: &mut [u8]) -> (usize, usize) {
158
158
}
159
159
160
160
/// Implement `next_u32` via `fill_bytes`, little-endian order.
161
- pub fn next_u32_via_fill < R : Rng + ?Sized > ( rng : & mut R ) -> u32 {
161
+ pub fn next_u32_via_fill < R : RngCore + ?Sized > ( rng : & mut R ) -> u32 {
162
162
impl_uint_from_fill ! ( rng, u32 , 4 )
163
163
}
164
164
165
165
/// Implement `next_u64` via `fill_bytes`, little-endian order.
166
- pub fn next_u64_via_fill < R : Rng + ?Sized > ( rng : & mut R ) -> u64 {
166
+ pub fn next_u64_via_fill < R : RngCore + ?Sized > ( rng : & mut R ) -> u64 {
167
167
impl_uint_from_fill ! ( rng, u64 , 8 )
168
168
}
169
169
0 commit comments