fn finalize( blocks: *Blocks, memory: u32, threads: u24, out: []u8, ) void
fn finalize( blocks: *Blocks, memory: u32, threads: u24, out: []u8, ) void { const lanes = memory / threads; var lane: u24 = 0; while (lane < threads - 1) : (lane += 1) { for (blocks.items[(lane * lanes) + lanes - 1], 0..) |v, i| { blocks.items[memory - 1][i] ^= v; } } var block: [1024]u8 = undefined; for (blocks.items[memory - 1], 0..) |v, i| { mem.writeInt(u64, block[i * 8 ..][0..8], v, .little); } blake2bLong(out, &block); }