25 lines
942 B
Zig
25 lines
942 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 }));
|
|
} |