# fill_via_u32_chunks in rand_core::impls - Rust
Implement `fill_bytes` by reading chunks from the output buffer of a block based RNG.
Keywords: rust, rustlang, rust-lang, fill_via_u32_chunks

# Function rand_core::impls::fill_via_u32_chunks

source · [−]

    pub fn fill_via_u32_chunks(src: &[u32], dest: &mut [u8]) -> (usize, usize)

Expand description

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`)

ⓘ

    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;
        }
    }