diff --git a/src/interaction.zig b/src/interaction.zig index 989c9c4..da851ad 100644 --- a/src/interaction.zig +++ b/src/interaction.zig @@ -16,23 +16,15 @@ pub fn userInteraction(allocator: std.mem.Allocator, tasks: *std.ArrayList([]con continue; }; - // todo make available commads be listed from enum itself - const Case = enum { add, edit, remove, move, quit }; + const Case = enum { add, edit, remove, quit }; - var fields = std.ArrayList([]const u8).init(allocator); - defer fields.deinit(); - - inline for (@typeInfo(Case).Enum.fields) |f| { - fields.append(f.name); - } - try stdout.print("Please enter your choice [add/remove/edit/move/quit]: ", .{}); + try stdout.print("Please enter your choice [add/remove/edit/quit]: ", .{}); const input = getInput(allocator) catch |err| { std.debug.print("Error acquiring input:\n{}\n", .{err}); continue; }; defer allocator.free(input); - const case = std.meta.stringToEnum(Case, input) orelse continue; var task_name: []const u8 = undefined; @@ -79,56 +71,11 @@ pub fn userInteraction(allocator: std.mem.Allocator, tasks: *std.ArrayList([]con allocator.free(tasks.items[id]); _ = tasks.orderedRemove(id); }, - .move => { - try stdout.print("Please enter task name or number: ", .{}); - _ = getTaskIndex(tasks, task_name) catch { - std.debug.print("Invalid task name...", .{}); - continue; - }; - - const new_input = getInput(allocator) catch |err| { - std.debug.print("Failed to get new input:\n{}\n", .{err}); - continue; - }; - defer allocator.free(new_input); - - _ = std.fmt.parseInt(usize, new_input, 10) catch |err| { - std.debug.print("Failed to convert the input into ID:\n{}\n", .{err}); - continue; - }; - - // todo restructure arraylist - }, .quit => break, } } } -fn get_fields_str(allocator: std.mem.Allocator, arr: std.ArrayList([]const u8)) ![]const u8 { - // get len - var len = 0; - for (arr.items) |value| { - len += value.len; - } - len += arr.capacity - 1; - - // todo free mem - var result = try allocator.alloc(u8, len); - defer allocator.free(result); - - var cur_len = 0; - for (arr.items) |value| { - @memcpy(result[0..], value); - cur_len += value.len; - - if (value == arr.items[arr.capacity-1]) continue; - @memcpy(result[cur_len..], "/"); - cur_len += 1; - } - - return result; -} - fn getInput(allocator: std.mem.Allocator) ![]const u8 { const stdin = std.io.getStdIn().reader(); const bare_line = try stdin.readUntilDelimiterAlloc(allocator, '\n', 8192);