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.

shortMemset

compiler_rt.shortMemset
fn shortMemset(
    log_min: comptime_int,
    log_max: comptime_int,
    d: [*]u8,
    b: u8,
    len: usize,
) void

File

lib/compiler_rt.zig:663

Code

fn shortMemset(
    log_min: comptime_int,
    log_max: comptime_int,
    d: [*]u8,
    b: u8,
    len: usize,
) void {
    if (log_min + 1 != log_max) {
        const mid = (log_min + log_max) / 2;
        if (len > 1 << mid) {
            shortMemset(mid, log_max, d, b, len);
        } else {
            shortMemset(log_min, mid, d, b, len);
        }
    } else {
        const size = 1 << log_min;

        memsetSmallPowerOf2(d, b, size);
        memsetSmallPowerOf2(d + len - size, b, size);
    }
}