diff --git a/src/args/args.zig b/src/args/args.zig index a918ef0..bbd6599 100644 --- a/src/args/args.zig +++ b/src/args/args.zig @@ -66,7 +66,7 @@ pub fn parseArgs(comptime T: type, allocator: Allocator) !T { /// Do not pass the process name as an argument. /// /// Parsing order of arguments is based on the order they are declared in `T`. -pub fn parseArgsFromSlice(comptime T: type, allocator: Allocator, args: [][:0]u8) !T { +pub fn parseArgsFromSlice(comptime T: type, allocator: Allocator, args: []const [:0]const u8) !T { var flags = try std.ArrayList(Arg).initCapacity(allocator, 4); defer flags.deinit(allocator); diff --git a/src/args/parsers/enumLiteral.zig b/src/args/parsers/enumLiteral.zig index 5be3166..b731439 100644 --- a/src/args/parsers/enumLiteral.zig +++ b/src/args/parsers/enumLiteral.zig @@ -14,9 +14,8 @@ pub fn enumLiteral(comptime T: type) *const fn (value: []const u8) anyerror!T { const log = std.log.scoped(.args); fn parseEnumFromStr(comptime T: type, str: []const u8) !T { - const heap_allocator = std.heap.page_allocator; - const lower = try std.ascii.allocLowerString(heap_allocator, str); - defer heap_allocator.free(lower); + var buf: [1024]u8 = undefined; + const lower = std.ascii.lowerString(&buf, str); const info = @typeInfo(T); comptime { @@ -26,8 +25,8 @@ fn parseEnumFromStr(comptime T: type, str: []const u8) !T { } inline for (info.@"enum".fields) |field| { - const lower_field_name = try std.ascii.allocLowerString(heap_allocator, field.name); - defer heap_allocator.free(lower_field_name); + var field_buf: [1024]u8 = undefined; + const lower_field_name = std.ascii.lowerString(&field_buf, field.name); if (std.mem.eql(u8, lower_field_name, lower)) { return @enumFromInt(field.value); } @@ -42,8 +41,8 @@ fn parseEnumFromStr(comptime T: type, str: []const u8) !T { log.warn("hint: try one of the following:", .{}); inline for (info.@"enum".fields) |field| { - const lower_field_name = try std.ascii.allocLowerString(heap_allocator, field.name); - defer heap_allocator.free(lower_field_name); + var field_buf: [1024]u8 = undefined; + const lower_field_name = std.ascii.lowerString(&field_buf, field.name); log.warn("- {s}", .{lower_field_name}); }