mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 15:13:28 +00:00
Improve format and re-add docstrings
Implements RP suggestions.
This commit is contained in:
@@ -157,13 +157,25 @@ fn writeEscapedAttributeValue(writer: anytype, value: []const u8) !void {
|
|||||||
|
|
||||||
const testing = std.testing;
|
const testing = std.testing;
|
||||||
test "dump.writeHTML" {
|
test "dump.writeHTML" {
|
||||||
try testWriteHTML("<div id=\"content\">Over 9000!</div>", "<div id=\"content\">Over 9000!</div>");
|
try testWriteHTML(
|
||||||
|
"<div id=\"content\">Over 9000!</div>",
|
||||||
|
"<div id=\"content\">Over 9000!</div>",
|
||||||
|
);
|
||||||
|
|
||||||
try testWriteHTML("<root><!-- a comment --></root>", "<root><!-- a comment --></root>");
|
try testWriteHTML(
|
||||||
|
"<root><!-- a comment --></root>",
|
||||||
|
"<root><!-- a comment --></root>",
|
||||||
|
);
|
||||||
|
|
||||||
try testWriteHTML("<p>< > &</p>", "<p>< > &</p>");
|
try testWriteHTML(
|
||||||
|
"<p>< > &</p>",
|
||||||
|
"<p>< > &</p>",
|
||||||
|
);
|
||||||
|
|
||||||
try testWriteHTML("<p id=\""><&"''\">wat?</p>", "<p id='\"><&"'''>wat?</p>");
|
try testWriteHTML(
|
||||||
|
"<p id=\""><&"''\">wat?</p>",
|
||||||
|
"<p id='\"><&"'''>wat?</p>",
|
||||||
|
);
|
||||||
|
|
||||||
try testWriteFullHTML(
|
try testWriteFullHTML(
|
||||||
\\<!DOCTYPE html>
|
\\<!DOCTYPE html>
|
||||||
@@ -173,8 +185,12 @@ test "dump.writeHTML" {
|
|||||||
, "<html><title>It's over what?</title><meta name=a value=\"b\">\n<body>9000");
|
, "<html><title>It's over what?</title><meta name=a value=\"b\">\n<body>9000");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn testWriteHTML(comptime expected: []const u8, src: []const u8) !void {
|
fn testWriteHTML(comptime expected_body: []const u8, src: []const u8) !void {
|
||||||
return testWriteFullHTML("<!DOCTYPE html>\n<html><head></head><body>" ++ expected ++ "</body></html>\n", src);
|
const expected =
|
||||||
|
"<!DOCTYPE html>\n<html><head></head><body>" ++
|
||||||
|
expected_body ++
|
||||||
|
"</body></html>\n";
|
||||||
|
return testWriteFullHTML(expected, src);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn testWriteFullHTML(comptime expected: []const u8, src: []const u8) !void {
|
fn testWriteFullHTML(comptime expected: []const u8, src: []const u8) !void {
|
||||||
|
|||||||
@@ -17,8 +17,14 @@
|
|||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
|
||||||
|
// ----
|
||||||
const Type = std.builtin.Type;
|
const Type = std.builtin.Type;
|
||||||
|
|
||||||
|
// Union
|
||||||
|
// -----
|
||||||
|
|
||||||
|
// Generate a flatten tagged Union from a Tuple
|
||||||
pub fn Union(interfaces: anytype) type {
|
pub fn Union(interfaces: anytype) type {
|
||||||
// @setEvalBranchQuota(10000);
|
// @setEvalBranchQuota(10000);
|
||||||
const tuple = Tuple(interfaces){};
|
const tuple = Tuple(interfaces){};
|
||||||
@@ -57,7 +63,7 @@ pub fn Union(interfaces: anytype) type {
|
|||||||
.decls = &.{},
|
.decls = &.{},
|
||||||
.is_exhaustive = true,
|
.is_exhaustive = true,
|
||||||
};
|
};
|
||||||
const enum_T = @Type(std.builtin.Type{ .Enum = enum_info });
|
const enum_T = @Type(.{ .Enum = enum_info });
|
||||||
|
|
||||||
// third iteration to generate union type
|
// third iteration to generate union type
|
||||||
var union_fields: [fields.len]Type.UnionField = undefined;
|
var union_fields: [fields.len]Type.UnionField = undefined;
|
||||||
@@ -81,6 +87,12 @@ pub fn Union(interfaces: anytype) type {
|
|||||||
} });
|
} });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tuple
|
||||||
|
// -----
|
||||||
|
|
||||||
|
// Flattens and depuplicates a list of nested tuples. For example
|
||||||
|
// input: {A, B, {C, B, D}, {A, E}}
|
||||||
|
// output {A, B, C, D, E}
|
||||||
pub fn Tuple(args: anytype) type {
|
pub fn Tuple(args: anytype) type {
|
||||||
@setEvalBranchQuota(100000);
|
@setEvalBranchQuota(100000);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user