build: port to zig-0.16.0-dev.3133+5ec8e45f3
This commit is contained in:
parent
66c28df31b
commit
1b7cd31925
3 changed files with 10 additions and 11 deletions
|
|
@ -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",
|
||||
|
|
|
|||
17
src/cbor.zig
17
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 {
|
||||
|
|
|
|||
|
|
@ -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" {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue