diff --git a/src/qtshit/qvariant.zig b/src/qtshit/qvariant.zig index 78c897c..d76e91c 100644 --- a/src/qtshit/qvariant.zig +++ b/src/qtshit/qvariant.zig @@ -7,6 +7,7 @@ pub const QVariant = union(enum) { bytearray: std.ArrayList(u8), string: []const u8, stringlist: std.ArrayList([]const u8), + qmap: std.StringHashMap(QVariant), empty: bool, }; @@ -27,7 +28,7 @@ pub fn qvariant_type_id(variant: QVariant) !u32 { .byte => { return @enumToInt(QVariantTypes.byte); }, - .int_1, .int_2 => { + .int => { return @enumToInt(QVariantTypes.int_1); }, .qmap => { diff --git a/src/qtshit/write.zig b/src/qtshit/write.zig index 09ae0d0..ea20e09 100644 --- a/src/qtshit/write.zig +++ b/src/qtshit/write.zig @@ -37,31 +37,31 @@ pub fn add_qvariant_with_id(writer: anytype, type_id: u32) !void { } pub fn add_qvariant(writer: anytype, variant: qvar.QVariant) !void { - add_qvariant_with_id(writer, qvar.qvariant_type_id(variant)); + try add_qvariant_with_id(writer, try qvar.qvariant_type_id(variant)); switch (variant) { - .byte => |*out| { - return add_byte(writer, out); + .byte => |out| { + try add_byte(writer, out); }, - .int_1, .int_2 => |*out| { - return add_int(writer, out); + .int => |out| { + try add_int(writer, out); }, - .qmap => |*out| { - return add_qvariantmap(writer, out); + .qmap => |out| { + try add_qvariantmap(writer, out); }, - .string => |*out| { - return add_string(writer, out); + .string => |out| { + try add_string(writer, out); }, - .stringlist => |*out| { - return add_stringlist(writer, out); + .stringlist => |out| { + try add_stringlist(writer, out); }, - .bytearray => |*out| { - return add_bytearray(writer, out); + .bytearray => |out| { + try add_bytearray(writer, out); }, - .short => |*out| { - return add_short(writer, out); + .short => |out| { + try add_short(writer, out); }, else => { - return 0; + return; }, } } @@ -83,9 +83,8 @@ pub fn add_qvariantmap(writer: anytype, map: std.StringHashMap(qvar.QVariant)) ! try add_int(writer, map.count()); while (iterator.next()) |entry| { - size += try qvar.qvariant_size(.{ .string = entry.key }); - size += try qvar.qvariant_size(entry.value); - size += 4; + try add_string(writer, entry.key); + try add_qvariant(writer, entry.value); } std.debug.print("Size {d} !\n", .{size});