structstd.zon.parse.Error.Iterator[src]

Fields

index: usize = 0
status: *const Status

Functions

Functionnext[src]

pub fn next(self: *@This()) ?Error

Parameters

self: *@This()

Source Code

Source code
pub fn next(self: *@This()) ?Error {
    const zoir = self.status.zoir orelse return null;

    if (self.index < zoir.compile_errors.len) {
        const result: Error = .{ .zoir = zoir.compile_errors[self.index] };
        self.index += 1;
        return result;
    }

    if (self.status.type_check) |err| {
        if (self.index == zoir.compile_errors.len) {
            const result: Error = .{ .type_check = err };
            self.index += 1;
            return result;
        }
    }

    return null;
}

Source Code

Source code
pub const Iterator = struct {
    index: usize = 0,
    status: *const Status,

    pub fn next(self: *@This()) ?Error {
        const zoir = self.status.zoir orelse return null;

        if (self.index < zoir.compile_errors.len) {
            const result: Error = .{ .zoir = zoir.compile_errors[self.index] };
            self.index += 1;
            return result;
        }

        if (self.status.type_check) |err| {
            if (self.index == zoir.compile_errors.len) {
                const result: Error = .{ .type_check = err };
                self.index += 1;
                return result;
            }
        }

        return null;
    }
}