Skip to documentation
SLOP

tiny.smg.cli.table.rich

Reference tiny.smg cli table rich

Defined in cli.table.

API (2)

Actions

Public operations.

Types and contracts

Public types and contracts.

No direct callersNo direct callscli.tablerich
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callersprivate; no linktools.smg.src.cli.table.richmaxColumnprivate; no linktools.smg.src.cli.table.richwriteBorderprivate; no linktools.smg.src.cli.table.richwriteRowcli.table.richwrite3
Static calls · unresolved targets: 0 · external targets: 0.

Source: tools/smg/src/cli/table/rich.zig

zig
const std = @import("std");const smg = @import("../../root.zig");const output = smg.cli.output;pub const Row3 = struct {    a: []const u8,    b: []const u8,    c: []const u8,};pub fn write3(writer: *std.Io.Writer, headers: Row3, rows: []const Row3) !void {    const widths = [_]usize{        maxColumn(headers.a, rows, 0) + 1,        maxColumn(headers.b, rows, 1) + 2,        maxColumn(headers.c, rows, 2) + 1,    };    try writeBorder(        writer,        "\xE2\x94\x8F",        "\xE2\x94\xB3",        "\xE2\x94\x93",        "\xE2\x94\x81",        &widths,    );    try writeRow(        writer,        .{ .a = headers.a, .b = headers.b, .c = headers.c },        &widths,        "\xE2\x94\x83",        "\xE2\x94\x83",    );    try writeBorder(        writer,        "\xE2\x94\xA1",        "\xE2\x95\x87",        "\xE2\x94\xA9",        "\xE2\x94\x81",        &widths,    );    for (rows) |row| try writeRow(writer, row, &widths, "\xE2\x94\x82", "\xE2\x94\x82");    try writeBorder(        writer,        "\xE2\x94\x94",        "\xE2\x94\xB4",        "\xE2\x94\x98",        "\xE2\x94\x80",        &widths,    );}fn maxColumn(header: []const u8, rows: []const Row3, column: usize) usize {    var width = header.len;    for (rows) |row| {        const value = switch (column) {            0 => row.a,            1 => row.b,            else => row.c,        };        width = @max(width, value.len);    }    return width;}fn writeBorder(    writer: *std.Io.Writer,    left: []const u8,    mid: []const u8,    right: []const u8,    fill: []const u8,    widths: []const usize,) !void {    try output.writeDocText(writer, left);    for (widths, 0..) |width, index| {        try output.writeRepeatedDoc(writer, fill, width);        if (index + 1 == widths.len) {            try output.writeDocText(writer, right);        } else {            try output.writeDocText(writer, mid);        }    }    try output.writeDocHardline(writer);}fn writeRow(    writer: *std.Io.Writer,    row: Row3,    widths: []const usize,    edge: []const u8,    sep: []const u8,) !void {    try output.writeDocText(writer, edge);    try writeCell(writer, row.a, widths[0], false);    try output.writeDocText(writer, sep);    try writeCell(writer, row.b, widths[1], true);    try output.writeDocText(writer, sep);    try writeCell(writer, row.c, widths[2], true);    try output.writeDocText(writer, edge);    try output.writeDocHardline(writer);}fn writeCell(    writer: *std.Io.Writer,    value: []const u8,    width: usize,    leading_space: bool,) !void {    var used: usize = 0;    if (leading_space) {        try output.writeDocText(writer, " ");        used += 1;    }    try output.writeDocText(writer, value);    used += value.len;    try output.writeSpacesDoc(writer, width -| used);}

Source: tools/smg/src/cli/table/root.zig:3

zig
pub const rich = @import("rich.zig");

Audit

Definitions3
Public names3
Members3
Version26.7.0
Revisiondaab053ee433