Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Io › Threaded › dirDeleteDirWasi Private Function dirDeleteDirWasi Doc Source Private Function std.Io.Threaded.dirDeleteDirWasi
fn dirDeleteDirWasi (userdata : ?*anyopaque , dir : Dir , sub_path : []const u8 ) Dir .DeleteDirError !void Params userdata : ?*anyopaque dir : Dir sub_path : []const u8 File Io/Threaded.zig: 7512
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554 fn dirDeleteDirWasi (userdata : ?*anyopaque , dir : Dir , sub_path : []const u8 ) Dir .DeleteDirError !void {
if (builtin .link_libc ) return dirDeleteDirPosix (userdata , dir , sub_path );
const t : *Threaded = @ptrCast (@alignCast (userdata ));
_ = t ;
const syscall : Syscall = try .start ();
while (true ) {
const res = std .os .wasi .path_remove_directory (dir .handle , sub_path .ptr , sub_path .len );
switch (res ) {
.SUCCESS => {
syscall .finish ();
return ;
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.ACCES => return error .AccessDenied ,
.PERM => return error .PermissionDenied ,
.BUSY => return error .FileBusy ,
.FAULT => |err | return errnoBug (err ),
.IO => return error .FileSystem ,
.LOOP => return error .SymLinkLoop ,
.NAMETOOLONG => return error .NameTooLong ,
.NOENT => return error .FileNotFound ,
.NOTDIR => return error .NotDir ,
.NOMEM => return error .SystemResources ,
.ROFS => return error .ReadOnlyFileSystem ,
.NOTEMPTY => return error .DirNotEmpty ,
.NOTCAPABLE => return error .AccessDenied ,
.ILSEQ => return error .BadPathName ,
.INVAL => |err | return errnoBug (err ), // invalid flags, or pathname has . as last component
.BADF => |err | return errnoBug (err ), // File descriptor used after closed.
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}