remove unused init, and remove magic pre-alloc

This commit is contained in:
Karl Seguin
2025-05-26 22:57:08 +08:00
parent 2feba3182a
commit d7c4824633

View File

@@ -89,12 +89,7 @@ fn LogT(comptime Out: type) type {
const Self = @This(); const Self = @This();
fn init(allocator: Allocator, opts: Opts) !Self { fn init(allocator: Allocator, opts: Opts, out: Out) !Self {
return initTo(allocator, opts, std.io.getStdOut());
}
// Used for tests
fn initTo(allocator: Allocator, opts: Opts, out: Out) !Self {
var buffer: std.ArrayListUnmanaged(u8) = .{}; var buffer: std.ArrayListUnmanaged(u8) = .{};
try buffer.ensureTotalCapacity(allocator, 2048); try buffer.ensureTotalCapacity(allocator, 2048);
@@ -159,9 +154,7 @@ fn LogT(comptime Out: type) type {
buffer.appendSliceAssumeCapacity(level_and_msg); buffer.appendSliceAssumeCapacity(level_and_msg);
inline for (@typeInfo(@TypeOf(data)).@"struct".fields) |f| { inline for (@typeInfo(@TypeOf(data)).@"struct".fields) |f| {
const key = " " ++ f.name ++ "="; const key = " " ++ f.name ++ "=";
try buffer.ensureUnusedCapacity(allocator, key.len);
// + 5 covers null/true/false
try buffer.ensureUnusedCapacity(allocator, key.len + 5);
buffer.appendSliceAssumeCapacity(key); buffer.appendSliceAssumeCapacity(key);
try writeValue(allocator, buffer, true, @field(data, f.name)); try writeValue(allocator, buffer, true, @field(data, f.name));
} }
@@ -234,7 +227,7 @@ const Pool = struct {
for (0..count) |i| { for (0..count) |i| {
const logger = try allocator.create(Log); const logger = try allocator.create(Log);
errdefer allocator.destroy(logger); errdefer allocator.destroy(logger);
logger.* = try Log.initTo(allocator, opts, out); logger.* = try Log.init(allocator, opts, out);
loggers[i] = logger; loggers[i] = logger;
started += 1; started += 1;
} }
@@ -290,15 +283,13 @@ pub fn writeValue(allocator: Allocator, buffer: *std.ArrayListUnmanaged(u8), esc
if (value) |v| { if (value) |v| {
return writeValue(allocator, buffer, escape_string, v); return writeValue(allocator, buffer, escape_string, v);
} }
// in _log, we reserved space for a value of up to 5 bytes. return buffer.appendSlice(allocator, "null");
return buffer.appendSliceAssumeCapacity("null");
}, },
.comptime_int, .int, .comptime_float, .float => { .comptime_int, .int, .comptime_float, .float => {
return std.fmt.format(buffer.writer(allocator), "{d}", .{value}); return std.fmt.format(buffer.writer(allocator), "{d}", .{value});
}, },
.bool => { .bool => {
// in _log, we reserved space for a value of up to 5 bytes. return buffer.appendSlice(allocator, if (value) "true" else "false");
return buffer.appendSliceAssumeCapacity(if (value) "true" else "false");
}, },
.error_set => return buffer.appendSlice(allocator, @errorName(value)), .error_set => return buffer.appendSlice(allocator, @errorName(value)),
.@"enum" => return buffer.appendSlice(allocator, @tagName(value)), .@"enum" => return buffer.appendSlice(allocator, @tagName(value)),
@@ -422,7 +413,7 @@ test "log: data" {
var buf: std.ArrayListUnmanaged(u8) = .{}; var buf: std.ArrayListUnmanaged(u8) = .{};
defer buf.deinit(testing.allocator); defer buf.deinit(testing.allocator);
var logger = try TestLogger.initTo(testing.allocator, .{ .format = .logfmt }, buf.writer(testing.allocator)); var logger = try TestLogger.init(testing.allocator, .{ .format = .logfmt }, buf.writer(testing.allocator));
defer logger.deinit(); defer logger.deinit();
{ {
@@ -461,7 +452,7 @@ test "log: string escape" {
var buf: std.ArrayListUnmanaged(u8) = .{}; var buf: std.ArrayListUnmanaged(u8) = .{};
defer buf.deinit(testing.allocator); defer buf.deinit(testing.allocator);
var logger = try TestLogger.initTo(testing.allocator, .{ .format = .logfmt }, buf.writer(testing.allocator)); var logger = try TestLogger.init(testing.allocator, .{ .format = .logfmt }, buf.writer(testing.allocator));
defer logger.deinit(); defer logger.deinit();
const prefix = "$time=1739795092929 $scope=scope $level=error $msg=test "; const prefix = "$time=1739795092929 $scope=scope $level=error $msg=test ";