1
0
Fork 0
QuasselClient/src/qtshit/write/writeQStringList.zig
2021-06-04 19:26:40 +01:00

26 lines
943 B
Zig

const std = @import("std");
const writeUInt = @import("./writeUInt.zig").writeUInt;
const writeString = @import("./writeString.zig").writeString;
pub fn writeQStringList(writer: anytype, allocator: *std.mem.Allocator, strList: [][]const u8) !void {
try writeUInt(writer, @intCast(u32, strList.len));
for (strList) |string| {
try writeString(writer, allocator, string);
}
}
test "serialize QStringList" {
var byteList = std.ArrayList(u8).init(std.testing.allocator);
defer byteList.deinit();
var stringList = std.ArrayList([]const u8).init(std.testing.allocator);
defer stringList.deinit();
try stringList.append("uwu");
try stringList.append("owo");
try writeQStringList(byteList.writer(), std.testing.allocator, stringList.items);
try std.testing.expect(std.mem.eql(u8, byteList.items, &[_]u8{ 0, 0, 0, 2, 0, 0, 0, 6, 0, 117, 0, 119, 0, 117, 0, 0, 0, 6, 0, 111, 0, 119, 0, 111 }));
}