Watch
1
0
Fork
You've already forked advent-of-code
0

2024 Day 1

This commit is contained in:
Jeremy Kaplan 2024-11-30 21:32:08 -08:00
commit c351b2b2c8
6 changed files with 216 additions and 1 deletions

30
2024/src/aoc.zig Normal file
View file

@ -0,0 +1,30 @@
const std = @import("std");
pub const Lines = struct {
buf_reader: std.io.BufferedReader(4096, std.fs.File.Reader),
line: std.ArrayList(u8),
pub fn init(allocator: std.mem.Allocator, file: std.fs.File) Lines {
return .{
.buf_reader = std.io.bufferedReader(file.reader()),
.line = std.ArrayList(u8).init(allocator),
};
}
pub fn deinit(self: Lines) void {
self.line.deinit();
}
pub fn next(self: *Lines) !?std.ArrayList(u8) {
const writer = self.line.writer();
const reader = self.buf_reader.reader();
self.line.clearRetainingCapacity();
if (reader.streamUntilDelimiter(writer, '\n', null)) {
return self.line;
} else |err| switch (err) {
error.EndOfStream => return null,
else => return err,
}
}
};