Function nextCodepoint [src]

If the next codepoint is encoded by a surrogate pair, returns the codepoint that the surrogate pair represents. If the next codepoint is an unpaired surrogate, returns the codepoint of the unpaired surrogate.

Prototype

pub fn nextCodepoint(it: *Wtf16LeIterator) ?u21

Parameters

it: *Wtf16LeIterator

Source

pub fn nextCodepoint(it: *Wtf16LeIterator) ?u21 { assert(it.i <= it.bytes.len); if (it.i == it.bytes.len) return null; var code_units: [2]u16 = undefined; code_units[0] = mem.readInt(u16, it.bytes[it.i..][0..2], .little); it.i += 2; surrogate_pair: { if (utf16IsHighSurrogate(code_units[0])) { if (it.i >= it.bytes.len) break :surrogate_pair; code_units[1] = mem.readInt(u16, it.bytes[it.i..][0..2], .little); const codepoint = utf16DecodeSurrogatePair(&code_units) catch break :surrogate_pair; it.i += 2; return codepoint; } } return code_units[0]; }