11strs : Strings ,
22by_name : std .ArrayHashMapUnmanaged (Strings.Index , InstalledPackage , void , true ),
33
4- file : ? std.fs .File ,
4+ file : ? std.Io .File ,
55
66pub fn open (gpa : std.mem.Allocator , io : std.Io , prefix : []const u8 ) ! InstalledPackages {
7- const cwd = std .fs .cwd ();
8- var prefix_dir = try cwd .makeOpenPath ( prefix , .{});
9- defer prefix_dir .close ();
7+ const cwd = std .Io . Dir .cwd ();
8+ var prefix_dir = try cwd .createDirPathOpen ( io , prefix , .{});
9+ defer prefix_dir .close (io );
1010
11- var own_data_dir = try prefix_dir .makeOpenPath ( paths .own_data_subpath , .{});
12- defer own_data_dir .close ();
11+ var own_data_dir = try prefix_dir .createDirPathOpen ( io , paths .own_data_subpath , .{});
12+ defer own_data_dir .close (io );
1313
14- const file = try own_data_dir .createFile (paths .installed_file_name , .{ .read = true , .truncate = false });
15- errdefer file .close ();
14+ const file = try own_data_dir .createFile (io , paths .installed_file_name , .{ .read = true , .truncate = false });
15+ errdefer file .close (io );
1616
1717 return parseFile (gpa , io , file );
1818}
1919
20- pub fn deinit (pkgs : * InstalledPackages , gpa : std.mem.Allocator ) void {
20+ pub fn deinit (pkgs : * InstalledPackages , io : std.Io , gpa : std.mem.Allocator ) void {
2121 if (pkgs .file ) | f |
22- f .close ();
22+ f .close (io );
2323
2424 pkgs .strs .deinit (gpa );
2525 pkgs .by_name .deinit (gpa );
@@ -30,29 +30,29 @@ pub fn isInstalled(pkgs: *const InstalledPackages, pkg_name: []const u8) bool {
3030 return pkgs .by_name .containsAdapted (pkg_name , pkgs .strs .adapter ());
3131}
3232
33- pub fn parseFile (gpa : std.mem.Allocator , io : std.Io , file : std.fs .File ) ! InstalledPackages {
33+ pub fn parseFile (gpa : std.mem.Allocator , io : std.Io , file : std.Io .File ) ! InstalledPackages {
3434 var reader = file .reader (io , &.{});
35- var res = try parseReader (gpa , & reader .interface );
35+ var res = try parseReader (io , gpa , & reader .interface );
3636 errdefer res .deinit ();
3737
3838 res .file = file ;
3939 return res ;
4040}
4141
42- pub fn parseReader (gpa : std.mem.Allocator , reader : * std.Io.Reader ) ! InstalledPackages {
42+ pub fn parseReader (io : std.Io , gpa : std.mem.Allocator , reader : * std.Io.Reader ) ! InstalledPackages {
4343 const data_str = try reader .allocRemainingAlignedSentinel (gpa , .unlimited , .of (u8 ), 0 );
4444 defer gpa .free (data_str );
4545
46- return parse (gpa , data_str );
46+ return parse (io , gpa , data_str );
4747}
4848
49- pub fn parse (gpa : std.mem.Allocator , string : [:0 ]const u8 ) ! InstalledPackages {
49+ pub fn parse (io : std.Io , gpa : std.mem.Allocator , string : [:0 ]const u8 ) ! InstalledPackages {
5050 var pkgs = InstalledPackages {
5151 .strs = .empty ,
5252 .by_name = .{},
5353 .file = null ,
5454 };
55- errdefer pkgs .deinit (gpa );
55+ errdefer pkgs .deinit (io , gpa );
5656
5757 try pkgs .parseInto (gpa , string );
5858 return pkgs ;
@@ -128,13 +128,11 @@ fn parsePackage(pkgs: *InstalledPackages, gpa: std.mem.Allocator, parser: *ini.P
128128 } };
129129}
130130
131- pub fn flush (pkgs : InstalledPackages ) ! void {
131+ pub fn flush (pkgs : InstalledPackages , io : std.Io ) ! void {
132132 const file = pkgs .file orelse return ;
133133
134- try file .seekTo (0 );
135-
136134 var file_buf : [std .heap .page_size_min ]u8 = undefined ;
137- var file_writer = file .writer (& file_buf );
135+ var file_writer = file .writer (io , & file_buf );
138136 try pkgs .writeTo (& file_writer .interface );
139137 try file_writer .end ();
140138}
@@ -149,9 +147,10 @@ pub fn writeTo(pkgs: InstalledPackages, writer: *std.Io.Writer) !void {
149147}
150148
151149fn expectTransform (from : [:0 ]const u8 , to : []const u8 ) ! void {
150+ const io = std .testing .io ;
152151 const gpa = std .testing .allocator ;
153- var pkgs = try parse (gpa , from );
154- defer pkgs .deinit (gpa );
152+ var pkgs = try parse (io , gpa , from );
153+ defer pkgs .deinit (io , gpa );
155154
156155 var rendered = std .Io .Writer .Allocating .init (gpa );
157156 defer rendered .deinit ();
0 commit comments