1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
diff --git src/zig/samples.zig src/zig/samples.zig
index cb05a1f2..ccd5b149 100644
--- src/zig/samples.zig
+++ src/zig/samples.zig
@@ -28,7 +28,11 @@ const GENOTYPE_MISSING = -256;
fn split_samples(str: []const u8) *ArrayList([] const u8) {
var list = ArrayList([] const u8).init(allocator);
defer list.deinit();
- var splits = std.mem.split(u8, str, " ");
+
+ var splits = if (@hasDecl(std.mem, "splitScalar"))
+ std.mem.splitScalar(u8, str, ' ')
+ else
+ std.mem.split(u8, str, ' ');
while (splits.next()) |chunk| {
list.append(chunk) catch |err| {
std.debug.print("out of memory {}\n", .{err});
@@ -61,10 +65,10 @@ const Genotypes = struct {
fn to_num(str: []const u8) !ArrayList(i64) {
var list = ArrayList(i64).init(allocator);
- var splits = if (is_phased(str))
- std.mem.split(u8, str, "|")
+ var splits = if (@hasDecl(std.mem, "splitScalar"))
+ std.mem.splitScalar(u8, str, if (is_phased(str)) '|' else '/')
else
- std.mem.split(u8, str, "/");
+ std.mem.split(u8, str, if (is_phased(str)) '|' else '/' );
while (splits.next()) |chunk| {
const i: i64 =
|