aboutsummaryrefslogtreecommitdiff
path: root/src/eval/html/Root.zig
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-30 14:33:13 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-30 14:33:13 +0200
commit987bd9323a384e8f042311262d9b0e0eba38da15 (patch)
tree852be64f4342f569b991106b8770c75cb160e8ac /src/eval/html/Root.zig
parentc0d1bd44fb6f5ceb5a79fe607cd40444b7aec2e6 (diff)
refactor(html): generalize element creation
Diffstat (limited to 'src/eval/html/Root.zig')
-rw-r--r--src/eval/html/Root.zig13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/eval/html/Root.zig b/src/eval/html/Root.zig
index 440667a..83859d4 100644
--- a/src/eval/html/Root.zig
+++ b/src/eval/html/Root.zig
@@ -28,10 +28,7 @@ pub fn deinit(self: *Self) void {
}
pub fn element(self: *Self) Element {
- return .{ .vtable = .{
- .render = render,
- .node = getNode,
- }, .ptr = self };
+ return (Element.Wrapper(Self){ .ptr = self }).element();
}
pub fn allocator(self: *Self) Allocator {
@@ -42,18 +39,12 @@ pub fn append(self: *Self, el: Element) void {
self.content.append(&el.node().node);
}
-fn getNode(context: *anyopaque) *Node {
- const self: *Self = @ptrCast(@alignCast(context));
- return &self.node;
-}
-
fn fromNode(context: *anyopaque) Element {
const self: *Self = @ptrCast(@alignCast(context));
return self.element();
}
-fn render(context: *anyopaque, alloc: Allocator) Error![]const u8 {
- const self: *Self = @ptrCast(@alignCast(context));
+pub fn render(self: *Self, alloc: Allocator) Error![]const u8 {
if (self.content.first == null) return "";
var acc = try std.ArrayList(u8).initCapacity(alloc, 8);
errdefer acc.deinit(alloc);