Skip to content

Commit 939bb00

Browse files
committed
Update codebase to 0.16
1 parent 07a5712 commit 939bb00

4 files changed

Lines changed: 36 additions & 30 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ name: CI
44
"on": [push, pull_request]
55

66
env:
7-
ZIG_VERSION: 0.15.2
7+
ZIG_VERSION: 0.16.0
88

99
jobs:
1010
test:

src/lib.zig

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ const fs = std.fs;
44
const mem = std.mem;
55

66
const Allocator = std.mem.Allocator;
7-
const File = std.fs.File;
8-
const Dir = std.fs.Dir;
7+
const Args = std.process.Args;
8+
9+
const Io = std.Io;
10+
const File = Io.File;
11+
const Dir = Io.Dir;
912

1013
const print = std.debug.print;
1114

@@ -122,9 +125,10 @@ pub const ZonDependencyIterator = struct {
122125
buffer: []const u8,
123126
index: usize,
124127

125-
pub fn init(alc: Allocator, file: *const File) !?Self {
126-
const stat = try file.stat();
127-
const contents = try file.readToEndAlloc(alc, stat.size);
128+
pub fn init(alc: Allocator, file: *const File, io: Io) !?Self {
129+
const stat = try file.stat(io);
130+
var file_reader = file.reader(io, &.{});
131+
const contents = try file_reader.interface.allocRemaining(alc, .limited(stat.size + 1));
128132
const dep_index = mem.indexOf(u8, contents, ".dependencies") orelse return null;
129133
const start = mem.indexOf(u8, contents[dep_index..], "{") orelse return null;
130134

@@ -166,28 +170,28 @@ pub const ZonFileIterator = struct {
166170
dir: Dir,
167171
inner_iter: Dir.Walker,
168172

169-
pub fn init(alc: Allocator) !Self {
170-
var args = std.process.args();
171-
_ = args.skip();
172-
const path = args.next() orelse return error.MissingDirPathArgument;
173-
var dir = try std.fs.cwd().openDir(path, .{});
173+
pub fn init(alc: Allocator, args: Args, io: Io) !Self {
174+
var args_iter = args.iterate();
175+
_ = args_iter.skip();
176+
const path = args_iter.next() orelse return error.MissingDirPathArgument;
177+
var dir = try Dir.cwd().openDir(io, path, .{ .iterate = true });
174178
return .{
175179
.dir = dir,
176180
.inner_iter = try dir.walk(alc),
177181
};
178182
}
179183

180-
pub fn deinit(self: *Self) void {
181-
self.dir.close();
184+
pub fn deinit(self: *Self, io: Io) void {
185+
self.dir.close(io);
182186
self.inner_iter.deinit();
183187
}
184188

185-
pub fn next(self: *Self) !?File {
186-
while (try self.inner_iter.next()) |entry| {
189+
pub fn next(self: *Self, io: Io) !?File {
190+
while (try self.inner_iter.next(io)) |entry| {
187191
if (entry.kind != File.Kind.file)
188192
continue;
189193
if (mem.endsWith(u8, entry.path, ".zon"))
190-
return try self.dir.openFile(entry.path, .{});
194+
return try self.dir.openFile(io, entry.path, .{});
191195
}
192196
return null;
193197
}

src/main.zig

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
const std = @import("std");
22
const fmt = std.fmt;
3-
const fs = std.fs;
3+
const File = std.Io.File;
44
const mem = std.mem;
55
const ArrayList = std.ArrayList;
66

77
const lib = @import("lib.zig");
88

9-
pub fn main() !void {
10-
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
11-
defer arena.deinit();
12-
const alc = arena.allocator();
9+
pub fn main(init: std.process.Init) !void {
10+
const alc = init.arena.allocator();
11+
const args = init.minimal.args;
12+
const io = init.io;
1313

14-
var zon_iter = try lib.ZonFileIterator.init(alc);
15-
defer zon_iter.deinit();
14+
var zon_iter = try lib.ZonFileIterator.init(alc, args, io);
15+
defer zon_iter.deinit(io);
1616

1717
var deps = try std.ArrayList(lib.Dependency).initCapacity(alc, 8);
1818
defer deps.deinit(alc);
1919

20-
while (try zon_iter.next()) |file| {
21-
defer file.close();
22-
var dep_iter = try lib.ZonDependencyIterator.init(alc, &file) orelse continue;
20+
while (try zon_iter.next(io)) |file| {
21+
defer file.close(io);
22+
var dep_iter = try lib.ZonDependencyIterator.init(alc, &file, io) orelse continue;
2323
while (dep_iter.next()) |dep| {
2424
try deps.append(alc, dep);
2525
}
@@ -43,7 +43,7 @@ pub fn main() !void {
4343

4444
mem.sort([]const u8, lines.items, {}, lib.stringLessThan);
4545
var stdout_buffer: [1024 * 8]u8 = undefined;
46-
var stdout_writer = fs.File.stdout().writer(&stdout_buffer);
46+
var stdout_writer = File.stdout().writer(io, &stdout_buffer);
4747
var stdout = &stdout_writer.interface;
4848
try stdout.print("ZIG_TUPLE=\t{s}", .{lines.items[0]});
4949
for (lines.items[1..]) |line| {

src/test.zig

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const std = @import("std");
22
const testing = std.testing;
33

44
const Allocator = std.mem.Allocator;
5+
const Dir = std.Io.Dir;
56

67
const lib = @import("lib.zig");
78

@@ -15,11 +16,12 @@ fn expectDep(alc: Allocator, dep: lib.Dependency, url: []const u8, hash: []const
1516

1617
test "Dependency Parsing" {
1718
const alc = testing.allocator;
19+
const io = testing.io;
1820

19-
const file = try std.fs.cwd().openFile("src/test_examples/build.zig.zon", .{});
20-
defer file.close();
21+
const file = try Dir.cwd().openFile(io, "src/test_examples/build.zig.zon", .{});
22+
defer file.close(io);
2123

22-
var dep_iter = try lib.ZonDependencyIterator.init(alc, &file) orelse return error.InvalidExample;
24+
var dep_iter = try lib.ZonDependencyIterator.init(alc, &file, io) orelse return error.InvalidExample;
2325
defer dep_iter.deinit(alc);
2426

2527
var dep = dep_iter.next() orelse return error.CannotFindDep1;

0 commit comments

Comments
 (0)