summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/aoc.zig20
-rw-r--r--util/mem.zig19
2 files changed, 20 insertions, 19 deletions
diff --git a/util/aoc.zig b/util/aoc.zig
new file mode 100644
index 0000000..0c3e668
--- /dev/null
+++ b/util/aoc.zig
@@ -0,0 +1,20 @@
+const std = @import("std");
+
+pub const Result = union(enum) {
+ int: i32,
+ string: []const u8,
+
+ pub fn cmp(self: Result, result: Result) bool {
+ switch (self) {
+ .int => |i| return i == result.int,
+ .string => |s| return std.mem.eql(u8, s, result.string),
+ }
+ }
+
+ pub fn deinit(self: Result, allocator: std.mem.Allocator) void {
+ switch (self) {
+ .string => |s| return allocator.free(s),
+ else => {},
+ }
+ }
+};
diff --git a/util/mem.zig b/util/mem.zig
deleted file mode 100644
index 728db44..0000000
--- a/util/mem.zig
+++ /dev/null
@@ -1,19 +0,0 @@
-const std = @import("std");
-
-const math = std.math;
-const testing_allocator = std.testing.allocator;
-
-/// Returns the position of the smallest number in a slice.
-pub fn min_idx(comptime T: type, slice: []const T) usize {
- var best = slice[0];
- var idx: usize = 0;
-
- for (slice[1..]) |item, i| {
- const possible_best = math.min(best, item);
- if (best > possible_best) {
- best = possible_best;
- idx = i + 1;
- }
- }
- return idx;
-}