mrow
This commit is contained in:
parent
1e8d0ca852
commit
61c00521a5
2 changed files with 7 additions and 8 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue