libvaxis/src/cell.zig

44 lines
886 B
Zig
Raw Normal View History

pub const Cell = struct {
char: Character = .{},
style: Style = .{},
};
pub const Character = struct {
grapheme: []const u8 = " ",
width: usize = 1,
};
pub const Style = struct {
pub const Underline = enum {
off,
single,
double,
curly,
dotted,
dashed,
};
fg: Color = .default,
bg: Color = .default,
ul: Color = .default,
ul_style: Underline = .off,
// TODO: url should maybe go outside of style. We'll need to allocate these
// in the internal screen
url: ?[]const u8 = null,
url_params: ?[]const u8 = null,
bold: bool = false,
dim: bool = false,
italic: bool = false,
blink: bool = false,
reverse: bool = false,
invisible: bool = false,
strikethrough: bool = false,
};
pub const Color = union(enum) {
default,
index: u8,
rgb: [3]u8,
};