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.

mainImpl

markdown.mainImpl
fn mainImpl() !void

File

lib/docs/wasm/markdown.zig:142

Code

fn mainImpl() !void {
    const gpa = std.heap.c_allocator;

    var parser = try Parser.init(gpa);
    defer parser.deinit();

    var stdin_buffer: [1024]u8 = undefined;
    var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);

    while (stdin_reader.takeDelimiterExclusive('\n')) |line| {
        const trimmed = std.mem.trimEnd(u8, line, '\r');
        try parser.feedLine(trimmed);
    } else |err| switch (err) {
        error.EndOfStream => {},
        else => |e| return e,
    }

    var doc = try parser.endInput();
    defer doc.deinit(gpa);

    var stdout_buffer: [1024]u8 = undefined;
    var stdout_writer = std.fs.File.stdout().writer(&stdout_buffer);
    try doc.render(&stdout_writer.interface);
    try stdout_writer.interface.flush();
}