From ae44478b30d890fe0fb04022f44d474dcdcc3f9d Mon Sep 17 00:00:00 2001 From: Lassi Pulkkinen Date: Thu, 31 Oct 2024 03:11:21 +0200 Subject: Initial commit (import old repo) --- trace/ctx.ha | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 trace/ctx.ha (limited to 'trace/ctx.ha') diff --git a/trace/ctx.ha b/trace/ctx.ha new file mode 100644 index 0000000..26a1ce6 --- /dev/null +++ b/trace/ctx.ha @@ -0,0 +1,33 @@ +use fmt; + +export type ctxtracer = struct { + tracer, + sink: *tracer, + fmt: str, + fields: []fmt::field, +}; + +export fn ctx(sink: *tracer, fmt: str, fields: fmt::field...) ctxtracer = { + return ctxtracer { + log = &ctx_log, + sink = sink, + fmt = fmt, + fields = fields, + }; +}; + +fn ctx_log( + tr: *tracer, + ctx: nullable *context, + lvl: level, + fmt: str, + fields: fmt::field... +) void = { + const tr = tr: *ctxtracer; + const ctx_ = context { + fmt = tr.fmt, + fields = tr.fields, + next = ctx, + }; + log(tr.sink, &ctx_, lvl, fmt, fields...); +}; -- cgit v1.2.3