1
Fork 0

wip cloneArray

may not turn out to be useful though
main
Motiejus Jakštys 2022-03-26 11:12:04 +02:00 committed by Motiejus Jakštys
parent fad7c9fbaf
commit 88d88af111
1 changed files with 19 additions and 0 deletions

View File

@ -37,6 +37,25 @@ pub fn someMembers(
return bufset;
}
// cloneArray clones an array of strings. This may be needed
// to change members to []const []const u8
fn cloneArray(allocator: Allocator, arr: []const []const u8) error{OutOfMemory}![]const []const u8 {
const total_len = blk: {
var sum: usize = 0;
for (arr) |elem| sum += elem.len;
break :blk sum;
};
var buf = try allocator.alloc(u8, total_len);
var ret = try allocator.alloc([]const u8, arr.len);
ret.len = arr.len;
for (arr) |elem, i| {
const old_len = buf.len;
mem.copy(u8, buf[old_len..], elem);
ret[i] = buf[old_len .. old_len + elem.len];
}
return ret;
}
const testing = std.testing;
test "Group.clone" {