structstd.unicode.Utf8View[src]

Utf8View iterates the code points of a utf-8 encoded string.

var utf8 = (try std.unicode.Utf8View.init("hi there")).iterator();
while (utf8.nextCodepointSlice()) |codepoint| {
  std.debug.print("got codepoint {s}\n", .{codepoint});
}

Fields

bytes: []const u8

Functions

Functioninit[src]

pub fn init(s: []const u8) !Utf8View

Parameters

s: []const u8

Source Code

Source code
pub fn init(s: []const u8) !Utf8View {
    if (!utf8ValidateSlice(s)) {
        return error.InvalidUtf8;
    }

    return initUnchecked(s);
}

FunctioninitUnchecked[src]

pub fn initUnchecked(s: []const u8) Utf8View

Parameters

s: []const u8

Source Code

Source code
pub fn initUnchecked(s: []const u8) Utf8View {
    return Utf8View{ .bytes = s };
}

FunctioninitComptime[src]

pub inline fn initComptime(comptime s: []const u8) Utf8View

Parameters

s: []const u8

Source Code

Source code
pub inline fn initComptime(comptime s: []const u8) Utf8View {
    return comptime if (init(s)) |r| r else |err| switch (err) {
        error.InvalidUtf8 => {
            @compileError("invalid utf8");
        },
    };
}

Functioniterator[src]

pub fn iterator(s: Utf8View) Utf8Iterator

Parameters

Source Code

Source code
pub fn iterator(s: Utf8View) Utf8Iterator {
    return Utf8Iterator{
        .bytes = s.bytes,
        .i = 0,
    };
}

Source Code

Source code
pub const Utf8View = struct {
    bytes: []const u8,

    pub fn init(s: []const u8) !Utf8View {
        if (!utf8ValidateSlice(s)) {
            return error.InvalidUtf8;
        }

        return initUnchecked(s);
    }

    pub fn initUnchecked(s: []const u8) Utf8View {
        return Utf8View{ .bytes = s };
    }

    pub inline fn initComptime(comptime s: []const u8) Utf8View {
        return comptime if (init(s)) |r| r else |err| switch (err) {
            error.InvalidUtf8 => {
                @compileError("invalid utf8");
            },
        };
    }

    pub fn iterator(s: Utf8View) Utf8Iterator {
        return Utf8Iterator{
            .bytes = s.bytes,
            .i = 0,
        };
    }
}