Function rand_core::impls::fill_via_u32_chunks [−][src]
pub fn fill_via_u32_chunks(src: &[u32], dest: &mut [u8]) -> (usize, usize)
Implement fill_bytes
by reading chunks from the output buffer of a block
based RNG.
The return values are (consumed_u32, filled_u8)
.
filled_u8
is the number of filled bytes in dest
, which may be less than
the length of dest
.
consumed_u32
is the number of words consumed from src
, which is the same
as filled_u8 / 4
rounded up.
Example
(from IsaacRng
)
ⓘThis example is not tested
fn fill_bytes(&mut self, dest: &mut [u8]) { let mut read_len = 0; while read_len < dest.len() { if self.index >= self.rsl.len() { self.isaac(); } let (consumed_u32, filled_u8) = impls::fill_via_u32_chunks(&mut self.rsl[self.index..], &mut dest[read_len..]); self.index += consumed_u32; read_len += filled_u8; } }