@@ -26,9 +26,9 @@ pub const FsOperation = union(enum) {
2626 contents : dim.Content ,
2727 },
2828
29- pub fn execute (op : FsOperation , executor : anytype ) ! void {
29+ pub fn execute (op : FsOperation , io : std.Io , executor : anytype ) ! void {
3030 const exec : Executor (@TypeOf (executor )) = .init (executor );
31- try exec .execute (op );
31+ try exec .execute (io , op );
3232 }
3333};
3434
@@ -42,7 +42,7 @@ fn Executor(comptime T: type) type {
4242 return .{ .inner = wrapped };
4343 }
4444
45- fn execute (exec : Exec , op : FsOperation ) dim.Content.RenderError ! void {
45+ fn execute (exec : Exec , io : std.Io , op : FsOperation ) dim.Content.RenderError ! void {
4646 switch (op ) {
4747 .make_dir = > | data | {
4848 try exec .recursive_mkdir (data .path );
@@ -53,10 +53,10 @@ fn Executor(comptime T: type) type {
5353 error .FileNotFound = > return , // open() already reported the error
5454 else = > | e | return e ,
5555 };
56- defer handle .close ();
56+ defer handle .close (io );
5757
5858 var buffer : [1024 ]u8 = undefined ;
59- var adapter = handle .reader (& buffer );
59+ var adapter = handle .reader (io , & buffer );
6060
6161 try exec .add_file (data .path , & adapter .interface );
6262 },
@@ -92,10 +92,10 @@ fn Executor(comptime T: type) type {
9292 };
9393
9494 var file = try fname .open ();
95- defer file .close ();
95+ defer file .close (io );
9696
9797 var buffer : [1024 ]u8 = undefined ;
98- var adapter = file .reader (& buffer );
98+ var adapter = file .reader (io , & buffer );
9999
100100 try exec .add_file (path , & adapter .interface );
101101 },
@@ -121,7 +121,7 @@ fn Executor(comptime T: type) type {
121121
122122 var bs : dim.BinaryStream = .init_buffer (buffer );
123123
124- try data .contents .render (& bs );
124+ try data .contents .render (io , & bs );
125125
126126 var reader : std.Io.Reader = .fixed (buffer );
127127
@@ -159,14 +159,14 @@ fn Executor(comptime T: type) type {
159159
160160 fn walk_err (err : (std .fs .Dir .OpenError || std.mem.Allocator.Error )) dim.Content.RenderError {
161161 return switch (err ) {
162- error .InvalidUtf8 ,
163- error .InvalidWtf8 ,
164162 error .BadPathName ,
165163 error .NameTooLong = > error .InvalidPath ,
166164
167165 error .OutOfMemory = > error .OutOfMemory ,
168166 error .FileNotFound = > error .FileNotFound ,
169167
168+ error .Canceled = > error .Canceled ,
169+
170170 error .DeviceBusy ,
171171 error .AccessDenied ,
172172 error .SystemResources ,
@@ -177,11 +177,7 @@ fn Executor(comptime T: type) type {
177177 error .ProcessFdQuotaExceeded ,
178178 error .SystemFdQuotaExceeded ,
179179 error .NotDir ,
180- error .ProcessNotFound ,
181180 error .PermissionDenied , = > error .IoError ,
182- error .ProcessNotFound ,
183- error .PermissionDenied ,
184- = > error .IoError ,
185181 };
186182 }
187183 };
0 commit comments