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 library itself.

walkSelectively

Recursively iterates over a directory, but requires the user to opt-in to recursing into each directory entry.

dir must have been opened with OpenOptions.iterate set to true.

Walker.deinit releases allocated memory and directory handles.

The order of returned file system entries is undefined.

dir will not be closed after walking it.

See also walk.

Dir.walkSelectively
pub fn walkSelectively(dir: Dir, allocator: Allocator) !SelectiveWalker

File

lib/std/Io/Dir.zig:327

Code

pub fn walkSelectively(dir: Dir, allocator: Allocator) !SelectiveWalker {
    var stack: std.ArrayList(SelectiveWalker.StackItem) = .empty;

    try stack.append(allocator, .{
        .iter = dir.iterate(),
        .dirname_len = 0,
    });

    return .{
        .stack = stack,
        .name_buffer = .empty,
        .allocator = allocator,
    };
}