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. /// Do not pass the process name as an argument.
/// ///
/// Parsing order of arguments is based on the order they are declared in `T`. /// 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); var flags = try std.ArrayList(Arg).initCapacity(allocator, 4);
defer flags.deinit(allocator); 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); const log = std.log.scoped(.args);
fn parseEnumFromStr(comptime T: type, str: []const u8) !T { fn parseEnumFromStr(comptime T: type, str: []const u8) !T {
const heap_allocator = std.heap.page_allocator; var buf: [1024]u8 = undefined;
const lower = try std.ascii.allocLowerString(heap_allocator, str); const lower = std.ascii.lowerString(&buf, str);
defer heap_allocator.free(lower);
const info = @typeInfo(T); const info = @typeInfo(T);
comptime { comptime {
@ -26,8 +25,8 @@ fn parseEnumFromStr(comptime T: type, str: []const u8) !T {
} }
inline for (info.@"enum".fields) |field| { inline for (info.@"enum".fields) |field| {
const lower_field_name = try std.ascii.allocLowerString(heap_allocator, field.name); var field_buf: [1024]u8 = undefined;
defer heap_allocator.free(lower_field_name); const lower_field_name = std.ascii.lowerString(&field_buf, field.name);
if (std.mem.eql(u8, lower_field_name, lower)) { if (std.mem.eql(u8, lower_field_name, lower)) {
return @enumFromInt(field.value); 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:", .{}); log.warn("hint: try one of the following:", .{});
inline for (info.@"enum".fields) |field| { inline for (info.@"enum".fields) |field| {
const lower_field_name = try std.ascii.allocLowerString(heap_allocator, field.name); var field_buf: [1024]u8 = undefined;
defer heap_allocator.free(lower_field_name); const lower_field_name = std.ascii.lowerString(&field_buf, field.name);
log.warn("- {s}", .{lower_field_name}); log.warn("- {s}", .{lower_field_name});
} }