chor: use new Writer interface for terminal's Writer; fix test cases
All checks were successful
Zig Project Action / Lint, Spell-check and test zig project (push) Successful in 3m38s

This commit is contained in:
2025-10-01 10:59:29 +02:00
parent aa17e13b99
commit 832fc45c3e
6 changed files with 46 additions and 44 deletions

View File

@@ -13,7 +13,7 @@ pub fn reset(this: *Cell) void {
this.cp = ' ';
}
pub fn value(this: Cell, writer: anytype) !void {
pub fn value(this: Cell, writer: *std.Io.Writer) !void {
try this.style.value(writer, this.cp);
}
@@ -29,17 +29,15 @@ test "ascii styled text" {
.{ .cp = 's', .style = .{ .fg = .light_green, .bg = .black, .emphasis = &.{.underline} } },
};
var string = try std.ArrayList(u8).initCapacity(std.testing.allocator, 4);
defer string.deinit(std.testing.allocator);
const writer = string.writer(std.testing.allocator);
var writer = std.Io.Writer.Allocating.init(std.testing.allocator);
defer writer.deinit();
for (cells) |cell| {
try cell.value(writer);
try cell.value(&writer.writer);
}
try std.testing.expectEqualSlices(
u8,
"\x1b[38;5;10;48;5;8;59mY\x1b[0m\x1b[39;49;59;1;4mv\x1b[0m\x1b[39;49;59;3me\x1b[0m\x1b[38;5;2;48;5;16;59;4ms\x1b[0m",
string.items,
writer.writer.buffer[0..writer.writer.end],
);
}
@@ -51,16 +49,14 @@ test "utf-8 styled text" {
.{ .cp = '┘', .style = .{ .fg = .light_green, .bg = .black, .emphasis = &.{.underline} } },
};
var string = try std.ArrayList(u8).initCapacity(std.testing.allocator, 4);
defer string.deinit(std.testing.allocator);
const writer = string.writer(std.testing.allocator);
var writer = std.Io.Writer.Allocating.init(std.testing.allocator);
defer writer.deinit();
for (cells) |cell| {
try cell.value(writer);
try cell.value(&writer.writer);
}
try std.testing.expectEqualSlices(
u8,
"\x1b[38;5;10;48;5;8;59m╭\x1b[0m\x1b[39;49;59m─\x1b[0m\x1b[39;49;59m┄\x1b[0m\x1b[38;5;2;48;5;16;59;4m┘\x1b[0m",
string.items,
writer.writer.buffer[0..writer.writer.end],
);
}