aboutsummaryrefslogtreecommitdiff
path: root/src/logger.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-22 14:24:28 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-22 14:24:28 -0700
commitda509f3d5a732145afebbc7400a832785f1b439f (patch)
tree11384b2bc80b405bffa1515e3ac2dfe993a229d2 /src/logger.zig
parentbee68ecc004864d1a1bbdfb0d49acf42ffe1f0d3 (diff)
downloadbun-da509f3d5a732145afebbc7400a832785f1b439f.tar.gz
bun-da509f3d5a732145afebbc7400a832785f1b439f.tar.zst
bun-da509f3d5a732145afebbc7400a832785f1b439f.zip
a
Diffstat (limited to 'src/logger.zig')
-rw-r--r--src/logger.zig15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/logger.zig b/src/logger.zig
index ccc922cbe..026d46aca 100644
--- a/src/logger.zig
+++ b/src/logger.zig
@@ -99,7 +99,18 @@ pub const Location = struct {
pub const Data = struct { text: string, location: ?Location = null };
-pub const Msg = struct { kind: Kind = Kind.err, data: Data, notes: ?[]Data = null };
+pub const Msg = struct {
+ kind: Kind = Kind.err,
+ data: Data,
+ notes: ?[]Data = null,
+ pub fn format(msg: *const Msg, to: anytype, formatterFunc: @TypeOf(std.fmt.format)) !void {
+ try formatterFunc(to, "\n\n{s}: {s}\n{s}\n{s}:{}:{}", .{ msg.kind.string(), msg.data.text, msg.data.location.?.line_text, msg.data.location.?.file, msg.data.location.?.line, msg.data.location.?.column });
+ }
+
+ pub fn formatNoWriter(msg: *const Msg, comptime formatterFunc: @TypeOf(std.debug.panic)) void {
+ formatterFunc("\n\n{s}: {s}\n{s}\n{s}:{}:{}", .{ msg.kind.string(), msg.data.text, msg.data.location.?.line_text, msg.data.location.?.file, msg.data.location.?.line, msg.data.location.?.column });
+ }
+};
pub const Range = packed struct {
loc: Loc = Loc.Empty,
@@ -190,7 +201,7 @@ pub const Log = struct {
// TODO:
pub fn print(self: *Log, to: anytype) !void {
for (self.msgs.items) |msg| {
- try std.fmt.format(to, "\n\n{s}: {s}\n{s}\n{s}:{}:{}", .{ msg.kind.string(), msg.data.text, msg.data.location.?.line_text, msg.data.location.?.file, msg.data.location.?.line, msg.data.location.?.column });
+ try msg.format(to, std.fmt.format);
}
}
};