Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

compressXof

blake3.compressXof
fn compressXof(cv: *const [8]u32, block: []const u8, block_len: u8, counter: u64, flags: Flags, out: *[64]u8) void

File

lib/std/crypto/blake3.zig:170

Code

fn compressXof(cv: *const [8]u32, block: []const u8, block_len: u8, counter: u64, flags: Flags, out: *[64]u8) void {
    var state: [16]u32 = undefined;
    compressPre(&state, cv, block, block_len, counter, flags);

    for (0..8) |i| {
        store32(out[i * 4 ..][0..4], state[i] ^ state[i + 8]);
    }
    for (0..8) |i| {
        store32(out[(i + 8) * 4 ..][0..4], state[i + 8] ^ cv[i]);
    }
}