lib/tracy/src/cli/args/csv.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const std = @import("std");
 2 const tracy = @import("../../root.zig");
 3 const types = @import("types.zig");
 4 
 5 pub fn parse(args: []const []const u8) !types.ExportArgs {
 6     if (args.len < 2) return error.InvalidArguments;
 7     var parsed = types.ExportArgs{
 8         .mode = tracy.csv.Export.fromName(args[0]) orelse return error.InvalidExport,
 9         .path = args[1],
10     };
11     var index: usize = 2;
12     while (index < args.len) : (index += 1) {
13         if (std.mem.eql(u8, args[index], "--output")) {
14             index += 1;
15             if (index >= args.len) return error.InvalidArguments;
16             parsed.output = args[index];
17         } else {
18             return error.UnknownArgument;
19         }
20     }
21     return parsed;
22 }
23 
24 test "export args parse output path" {
25     const parsed = try parse(&.{ "zones", "events.jsonl", "--output", "zones.csv" });
26     try std.testing.expectEqual(tracy.csv.Export.zones, parsed.mode);
27     try std.testing.expectEqualStrings("events.jsonl", parsed.path);
28     try std.testing.expectEqualStrings("zones.csv", parsed.output.?);
29 }