Compare commits
10 commits
851789d5d6
...
2d2d8dd88d
| Author | SHA1 | Date | |
|---|---|---|---|
| 2d2d8dd88d | |||
| 505427ee32 | |||
| b56a7847d0 | |||
| b8240ffc25 | |||
| 68f0f7d26a | |||
| 9cf6617fd2 | |||
| e95f1ad049 | |||
| 43fc008c58 | |||
|
|
8a3f9deb2d | ||
| f769544eed |
5 changed files with 111 additions and 32 deletions
35
build.zig
35
build.zig
|
|
@ -49,6 +49,7 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-c/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-cpp/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-css/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/d/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-diff/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-dockerfile/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/highlights.scm");
|
||||
|
|
@ -70,7 +71,7 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-julia/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-kdl/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-lua/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-mail/queries/mail/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-mail/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-make/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown-inline/queries/highlights.scm");
|
||||
|
|
@ -92,8 +93,10 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-proto/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-python/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-query/queries/query/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-regex/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmbash/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmspec/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ruby/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rust/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ssh-config/queries/highlights.scm");
|
||||
|
|
@ -113,16 +116,20 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-zig/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy-schema/queries/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/verilog/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/commonlisp/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/latex/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/hcl/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/rst/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/systemverilog/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/comment/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/llvm/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/highlights.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/highlights.scm");
|
||||
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/cmake/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-asm/queries/asm/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-astro/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-cpp/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/d/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elm/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-fsharp/queries/injections.scm");
|
||||
|
|
@ -147,6 +154,8 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-po/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/vim_queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-query/queries/query/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmspec/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rust/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-superhtml/tree-sitter-superhtml/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-swift/queries/injections.scm");
|
||||
|
|
@ -154,11 +163,13 @@ pub fn build(b: *std.Build) void {
|
|||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-uxntal/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-vim/queries/vim/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-zig/queries/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/verilog/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/commonlisp/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/latex/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/hcl/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/rst/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/systemverilog/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/llvm/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/injections.scm");
|
||||
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/injections.scm");
|
||||
|
||||
const syntax_mod = b.addModule("syntax", .{
|
||||
.root_source_file = b.path("src/syntax.zig"),
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
.dependencies = .{
|
||||
.tree_sitter = .{
|
||||
.url = "https://github.com/neurocyte/tree-sitter/releases/download/master-772776d4a090b2d08b10834ab623d8d40c75a3b0/source.tar.gz",
|
||||
.hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyLF0iTBSKlZFqwf9kbYT1ENCbCFYp9XoKpZUrm2v",
|
||||
.url = "https://github.com/neurocyte/tree-sitter/releases/download/master-4f6c39ab6e313122b43957bc555377318bfa51f0/source.tar.gz",
|
||||
.hash = "tree_sitter-0.26.7-z0LhyEjBnzDRrCtuKtQrrkdtSIO5v8dE8ildxwOrWcGt",
|
||||
},
|
||||
.cbor = .{
|
||||
.url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0",
|
||||
|
|
|
|||
|
|
@ -54,6 +54,14 @@ pub const @"c-sharp" = .{
|
|||
.comment = "//",
|
||||
};
|
||||
|
||||
pub const comment = .{
|
||||
.description = "Comment tags",
|
||||
.icon = "#",
|
||||
.extensions = .{},
|
||||
.comment = "#",
|
||||
.highlights = "nvim-treesitter/runtime/queries/comment/highlights.scm",
|
||||
};
|
||||
|
||||
pub const conf = .{
|
||||
.description = "Config",
|
||||
.color = 0x000000,
|
||||
|
|
@ -105,6 +113,16 @@ pub const css = .{
|
|||
.comment = "//",
|
||||
};
|
||||
|
||||
pub const d = .{
|
||||
.description = "D",
|
||||
.color = 0xF54927,
|
||||
.icon = "",
|
||||
.extensions = .{ "d", "di" },
|
||||
.comment = "//",
|
||||
.highlights = "queries/d/highlights.scm",
|
||||
.injections = "queries/d/injections.scm",
|
||||
};
|
||||
|
||||
pub const diff = .{
|
||||
.description = "Diff",
|
||||
.extensions = .{ "diff", "patch", "rej" },
|
||||
|
|
@ -214,8 +232,8 @@ pub const hcl = .{
|
|||
.icon = "",
|
||||
.extensions = .{ "hcl", "tf", "tfvars" },
|
||||
.comment = "#",
|
||||
.highlights = "nvim-treesitter/queries/hcl/highlights.scm",
|
||||
.injections = "nvim-treesitter/queries/hcl/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/hcl/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/hcl/injections.scm",
|
||||
};
|
||||
|
||||
pub const html = .{
|
||||
|
|
@ -243,7 +261,8 @@ pub const hurl = .{
|
|||
.icon = "",
|
||||
.extensions = .{"hurl"},
|
||||
.comment = "#",
|
||||
.injections = "tree-sitter-hurl/queries/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/hurl/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/hurl/injections.scm",
|
||||
};
|
||||
|
||||
pub const java = .{
|
||||
|
|
@ -299,8 +318,8 @@ pub const latex = .{
|
|||
.icon = "",
|
||||
.extensions = .{ "tex", "aux", "sty", "cls" },
|
||||
.comment = "%",
|
||||
.highlights = "nvim-treesitter/queries/latex/highlights.scm",
|
||||
.injections = "nvim-treesitter/queries/latex/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/latex/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/latex/injections.scm",
|
||||
};
|
||||
|
||||
pub const commonlisp = .{
|
||||
|
|
@ -309,8 +328,17 @@ pub const commonlisp = .{
|
|||
.icon = "",
|
||||
.extensions = .{ "lisp", "ls", "el" },
|
||||
.comment = ";",
|
||||
.highlights = "nvim-treesitter/queries/commonlisp/highlights.scm",
|
||||
.injections = "nvim-treesitter/queries/commonlisp/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/commonlisp/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/commonlisp/injections.scm",
|
||||
};
|
||||
|
||||
pub const llvm = .{
|
||||
.description = "Llvm",
|
||||
.icon = "",
|
||||
.extensions = .{ "llvm", "ll" },
|
||||
.comment = ";",
|
||||
.highlights = "nvim-treesitter/runtime/queries/llvm/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/llvm/injections.scm",
|
||||
};
|
||||
|
||||
pub const lua = .{
|
||||
|
|
@ -328,7 +356,6 @@ pub const mail = .{
|
|||
.icon = "",
|
||||
.extensions = .{ "eml", "mbox" },
|
||||
.comment = ">",
|
||||
.highlights = "tree-sitter-mail/queries/mail/highlights.scm",
|
||||
.first_line_matches = FirstLineMatch{ .prefix = "From" },
|
||||
};
|
||||
|
||||
|
|
@ -535,20 +562,31 @@ pub const regex = .{
|
|||
.comment = "#",
|
||||
};
|
||||
|
||||
pub const rpmbash = .{
|
||||
.description = "RPM spec (bash)",
|
||||
.color = 0xff0000,
|
||||
.icon = "",
|
||||
.extensions = .{},
|
||||
.comment = "#",
|
||||
.highlights = "tree-sitter-rpmspec/rpmbash/queries/highlights.scm",
|
||||
};
|
||||
|
||||
pub const rpmspec = .{
|
||||
.description = "RPM spec",
|
||||
.color = 0xff0000,
|
||||
.icon = "",
|
||||
.extensions = .{"spec"},
|
||||
.comment = "#",
|
||||
.highlights = "tree-sitter-rpmspec/rpmspec/queries/highlights.scm",
|
||||
.injections = "tree-sitter-rpmspec/rpmspec/queries/injections.scm",
|
||||
};
|
||||
|
||||
pub const rst = .{
|
||||
.description = "reStructuredText",
|
||||
.extensions = .{"rst"},
|
||||
.comment = "..",
|
||||
.highlights = "nvim-treesitter/queries/rst/highlights.scm",
|
||||
.injections = "nvim-treesitter/queries/rst/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/rst/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/rst/injections.scm",
|
||||
};
|
||||
|
||||
pub const ruby = .{
|
||||
|
|
@ -568,9 +606,17 @@ pub const rust = .{
|
|||
.injections = "tree-sitter-rust/queries/injections.scm",
|
||||
};
|
||||
|
||||
pub const query = .{
|
||||
.description = "Query (tree-sitter)",
|
||||
.extensions = .{"scm"},
|
||||
.comment = ";",
|
||||
.highlights = "tree-sitter-query/queries/query/highlights.scm",
|
||||
.injections = "tree-sitter-query/queries/query/injections.scm",
|
||||
};
|
||||
|
||||
pub const scheme = .{
|
||||
.description = "Scheme",
|
||||
.extensions = .{ "scm", "ss" },
|
||||
.extensions = .{ "scm", "ss", "scheme" },
|
||||
.comment = ";",
|
||||
};
|
||||
|
||||
|
|
@ -595,12 +641,12 @@ pub const swift = .{
|
|||
.comment = "//",
|
||||
};
|
||||
|
||||
pub const verilog = .{
|
||||
pub const systemverilog = .{
|
||||
.description = "SystemVerilog",
|
||||
.extensions = .{ "sv", "svh", "v", "vh" },
|
||||
.comment = "//",
|
||||
.highlights = "nvim-treesitter/queries/verilog/highlights.scm",
|
||||
.injections = "nvim-treesitter/queries/verilog/injections.scm",
|
||||
.highlights = "nvim-treesitter/runtime/queries/systemverilog/highlights.scm",
|
||||
.injections = "nvim-treesitter/runtime/queries/systemverilog/injections.scm",
|
||||
};
|
||||
|
||||
pub const toml = .{
|
||||
|
|
|
|||
|
|
@ -33,10 +33,28 @@ pub fn main() anyerror!void {
|
|||
for (file_types) |file_type| {
|
||||
const lang = file_type.lang_fn() orelse std.debug.panic("tree-sitter parser function failed for language: {s}", .{file_type.name});
|
||||
|
||||
const lang_abi = lang.getLanguageAbiVersion();
|
||||
if (lang_abi < treez.TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION)
|
||||
std.debug.panic("tree-sitter language '{s}' API is too old: {d} (our MIN API:{d})", .{
|
||||
lang.getLanguageName(),
|
||||
lang_abi,
|
||||
treez.TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION,
|
||||
});
|
||||
if (lang_abi > treez.TREE_SITTER_LANGUAGE_VERSION)
|
||||
std.debug.panic("tree-sitter language '{s}' API is too new: {d} (our API:{d})", .{
|
||||
lang.getLanguageName(),
|
||||
lang_abi,
|
||||
treez.TREE_SITTER_LANGUAGE_VERSION,
|
||||
});
|
||||
|
||||
try cbor.writeValue(writer, file_type.name);
|
||||
try cbor.writeMapHeader(writer, if (file_type.injections) |_| 3 else 2);
|
||||
|
||||
const highlights_in = try treez.Query.create(lang, file_type.highlights);
|
||||
var error_offset: u32 = 0;
|
||||
const highlights_in = treez.Query.create(lang, file_type.highlights, &error_offset) catch |e| switch (e) {
|
||||
error.InvalidLanguage => std.debug.panic("tree-sitter invalid language error: {s}", .{file_type.name}),
|
||||
else => |e_| std.debug.panic("tree-sitter failed to read highlights: {s} -> {t} at pos {d}", .{ file_type.name, e_, error_offset }),
|
||||
};
|
||||
const ts_highlights_in: *tss.TSQuery = @ptrCast(@alignCast(highlights_in));
|
||||
|
||||
const highlights_cb = try tss.toCbor(ts_highlights_in, allocator);
|
||||
|
|
@ -47,7 +65,7 @@ pub fn main() anyerror!void {
|
|||
if (verbose)
|
||||
std.log.info("file_type {s} highlights {d} bytes", .{ file_type.name, highlights_cb.len });
|
||||
|
||||
const errors_in = try treez.Query.create(lang, "(ERROR) @error");
|
||||
const errors_in = try treez.Query.create(lang, "(ERROR) @error", &error_offset);
|
||||
const ts_errors_in: *tss.TSQuery = @ptrCast(@alignCast(errors_in));
|
||||
|
||||
const errors_cb = try tss.toCbor(ts_errors_in, allocator);
|
||||
|
|
@ -59,7 +77,10 @@ pub fn main() anyerror!void {
|
|||
std.log.info("file_type {s} errors {d} bytes", .{ file_type.name, errors_cb.len });
|
||||
|
||||
if (file_type.injections) |injections| {
|
||||
const injections_in = try treez.Query.create(lang, injections);
|
||||
const injections_in = treez.Query.create(lang, injections, &error_offset) catch |e| switch (e) {
|
||||
error.InvalidLanguage => std.debug.panic("tree-sitter invalid language error: {s}", .{file_type.name}),
|
||||
else => |e_| std.debug.panic("tree-sitter failed to read injections: {s} -> {t} at pos {d}", .{ file_type.name, e_, error_offset }),
|
||||
};
|
||||
const ts_injections_in: *tss.TSQuery = @ptrCast(@alignCast(injections_in));
|
||||
|
||||
const injections_cb = try tss.toCbor(ts_injections_in, allocator);
|
||||
|
|
|
|||
|
|
@ -171,11 +171,12 @@ pub const QueryStep = extern struct {
|
|||
// is_last_child: u1,
|
||||
// is_pass_through: u1,
|
||||
// is_dead_end: u1,
|
||||
// alternative_is_immediate: u1,
|
||||
// is_inside_alternation: u1,
|
||||
// contains_captures: u1,
|
||||
// root_pattern_guaranteed: u1,
|
||||
flags8: u8,
|
||||
// parent_pattern_guaranteed: u1,
|
||||
// is_missing: u1,
|
||||
flags16: u8,
|
||||
|
||||
pub fn cborEncode(self: *const @This(), writer: *Io.Writer) !void {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue