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.

OptionalString

Points into string_bytes, null-terminated.

Configuration.OptionalString
pub const OptionalString = enum(u32)

File

lib/std/Build/Configuration.zig:1917

Code

pub const OptionalString = enum(u32) {
    empty = 0,
    /// The string "root".
    root = 1,
    none = max_u32,
    _,

    pub fn init(s: String) OptionalString {
        const result: OptionalString = @fromBackingInt(@intCast(@backingInt(s)));
        assert(result != .none);
        return result;
    }

    pub fn unwrap(this: @This()) ?String {
        if (this == .none) return null;
        return @fromBackingInt(@intCast(@backingInt(this)));
    }

    pub fn slice(this: @This(), c: *const Configuration) ?[:0]const u8 {
        return (unwrap(this) orelse return null).slice(c);
    }
}