This commit is contained in:
Lyssieth 2026-01-11 04:49:16 +02:00
parent 1e8d0ca852
commit 61c00521a5
Signed by untrusted user who does not match committer: lyssieth
GPG key ID: 6EE87E973D3AA8F2
2 changed files with 7 additions and 8 deletions

View file

@ -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);

View file

@ -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});
}