fn consume(noalias self: *Accumulator, input_blocks: []const InputBlock) void self: *Accumulatorinput_blocks: []const InputBlock552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569 fn consume(noalias self: *Accumulator, input_blocks: []const InputBlock) void {
const blocks_per_scramble = 1024 / block_bytes;
std.debug.assert(self.consumed <= blocks_per_scramble);
var blocks = input_blocks;
var blocks_until_scramble = blocks_per_scramble - self.consumed;
while (blocks.len >= blocks_until_scramble) {
self.accumulate(blocks[0..blocks_until_scramble]);
self.scramble();
self.consumed = 0;
blocks = blocks[blocks_until_scramble..];
blocks_until_scramble = blocks_per_scramble;
}
self.accumulate(blocks);
self.consumed += blocks.len;
}