summaryrefslogtreecommitdiff
path: root/clap.zig
diff options
context:
space:
mode:
Diffstat (limited to 'clap.zig')
-rw-r--r--clap.zig12
1 files changed, 10 insertions, 2 deletions
diff --git a/clap.zig b/clap.zig
index 3863087..c4dd801 100644
--- a/clap.zig
+++ b/clap.zig
@@ -563,12 +563,20 @@ pub const Diagnostic = struct {
563 else => try stream.print("Error while parsing arguments: {s}\n", .{@errorName(err)}), 563 else => try stream.print("Error while parsing arguments: {s}\n", .{@errorName(err)}),
564 } 564 }
565 } 565 }
566
567 /// Wrapper around `report`, which writes to a file in a buffered manner
568 pub fn reportToFile(diag: Diagnostic, file: std.fs.File, err: anyerror) !void {
569 var buf: [1024]u8 = undefined;
570 var writer = file.writer(&buf);
571 try diag.report(&writer.interface, err);
572 return writer.end();
573 }
566}; 574};
567 575
568fn testDiag(diag: Diagnostic, err: anyerror, expected: []const u8) !void { 576fn testDiag(diag: Diagnostic, err: anyerror, expected: []const u8) !void {
569 var buf: [1024]u8 = undefined; 577 var buf: [1024]u8 = undefined;
570 var writer = std.Io.Writer.fixed(&buf); 578 var writer = std.Io.Writer.fixed(&buf);
571 diag.report(&writer, err) catch unreachable; 579 try diag.report(&writer, err);
572 try std.testing.expectEqualStrings(expected, writer.buffered()); 580 try std.testing.expectEqualStrings(expected, writer.buffered());
573} 581}
574 582
@@ -1264,7 +1272,7 @@ fn testErr(
1264 }) catch |err| { 1272 }) catch |err| {
1265 var buf: [1024]u8 = undefined; 1273 var buf: [1024]u8 = undefined;
1266 var writer = std.Io.Writer.fixed(&buf); 1274 var writer = std.Io.Writer.fixed(&buf);
1267 diag.report(&writer, err) catch return error.TestFailed; 1275 try diag.report(&writer, err);
1268 try std.testing.expectEqualStrings(expected, writer.buffered()); 1276 try std.testing.expectEqualStrings(expected, writer.buffered());
1269 return; 1277 return;
1270 }; 1278 };