diff options
Diffstat (limited to 'clap.zig')
| -rw-r--r-- | clap.zig | 12 |
1 files changed, 10 insertions, 2 deletions
| @@ -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 | ||
| 568 | fn testDiag(diag: Diagnostic, err: anyerror, expected: []const u8) !void { | 576 | fn 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 | }; |