From 1b7cd3192552f5fd0b1679d535e5cd978794d13a Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 9 Apr 2026 18:50:30 +0200 Subject: [PATCH] build: port to zig-0.16.0-dev.3133+5ec8e45f3 --- build.zig.zon | 2 +- src/cbor.zig | 17 ++++++++--------- test/tests.zig | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 2b496b7..e3443bb 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -2,7 +2,7 @@ .name = .cbor, .version = "1.1.0", .fingerprint = 0x1feaffc7fc04c445, - .minimum_zig_version = "0.15.2", + .minimum_zig_version = "0.16.0-dev.3133+5ec8e45f3", .paths = .{ "src", diff --git a/src/cbor.zig b/src/cbor.zig index e156e2a..da9f4a1 100644 --- a/src/cbor.zig +++ b/src/cbor.zig @@ -207,8 +207,7 @@ fn writeUnion(writer: *Io.Writer, value: anytype, info: std.builtin.Type.Union) inline for (info.fields) |u_field| { const t = @field(TagType, u_field.name); if (value == t) { - const Payload = std.meta.TagPayload(T, t); - if (Payload != void) { + if (@FieldType(T, @tagName(t)) != void) { try writeArrayHeader(writer, 2); try writeEnum(writer, value); return try writeValue(writer, @field(value, u_field.name)); @@ -577,16 +576,16 @@ fn matchUnionScalar(comptime T: type, iter_: *[]const u8, val_: *T) Error!bool { inline for (comptime std.meta.tags(TagType)) |t_| { if (t_ == unionTag) { - const Payload = std.meta.TagPayload(T, t_); + const FieldType = @FieldType(T, @tagName(t_)); - if (Payload == void) { + if (FieldType == void) { if (n != 1) return false; val_.* = t_; iter_.* = iter; return true; } else { if (n != 2) return false; - var val: Payload = undefined; + var val: FieldType = undefined; if (try matchValue(&iter, extract(&val))) { val_.* = @unionInit(T, @tagName(t_), val); iter_.* = iter; @@ -615,16 +614,16 @@ fn matchUnionAlloc(comptime T: type, iter_: *[]const u8, val_: *T, allocator: st inline for (comptime std.meta.tags(TagType)) |t_| { if (t_ == unionTag) { - const Payload = std.meta.TagPayload(T, t_); + const FieldType = @FieldType(T, @tagName(t_)); - if (Payload == void) { + if (FieldType == void) { if (n != 1) return false; val_.* = t_; iter_.* = iter; return true; } else { if (n != 2) return false; - var val: Payload = undefined; + var val: FieldType = undefined; if (try matchValue(&iter, extractAlloc(&val, allocator))) { val_.* = @unionInit(T, @tagName(t_), val); iter_.* = iter; @@ -651,7 +650,7 @@ fn matchUnionValue(comptime T: type, iter_: *[]const u8, val: T) Error!bool { if (!try matchEnumValue(std.meta.Tag(T), &iter, t)) return false; - if (std.meta.TagPayload(T, t) != void) { + if (@FieldType(T, @tagName(t)) != void) { if (n != 2) return false; if (!try matchValue(&iter, v)) return false; } else { diff --git a/test/tests.zig b/test/tests.zig index 538409d..264e136 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -55,7 +55,7 @@ test "cbor.fmtBuf success" { test "cbor.fmtBuf overflow" { var buf: [4]u8 = undefined; - try expectError(error.NoSpaceLeft, fmtBuf(&buf, .{ "five", 5, "four", 4, .{ "three", 3 } })); + try expectError(error.WriteFailed, fmtBuf(&buf, .{ "five", 5, "four", 4, .{ "three", 3 } })); } test "cbor exit message" {