value between 1 and 4 (as per RFC 3629, section 3). For UTF-16, it is either 1 or 2. For UTF-32, it is always 1.
stride
fn
uint stride(S)(auto ref S str, size_t index) if (is(S : const char[]) ||
(isRandomAccessRange!S && is(immutable ElementType!S == immutable char)))Calculate the length of the UTF sequence starting at index in str.
Parameters
str | input range of UTF code units. Must be random access if index is passed |
index | starting index of UTF sequence (default: 0) |
Returns
The number of code units in the UTF sequence. For UTF-8, this is a
Throws
May throw a
UTFException if str[index] is not the start of a
valid UTF sequence.
Note
stride will only analyze the first str[index] element. It
will not fully verify the validity of the UTF sequence, nor even verify the presence of the sequence: it will not actually guarantee that
index + stride(str, index) <= str.length.fn
uint stride(S)(auto ref S str) if (is(S : const char[]) ||
(isInputRange!S && is(immutable ElementType!S == immutable char)))Ditto
fn
uint stride(S)(auto ref S str, size_t index) if (is(S : const wchar[]) ||
(isRandomAccessRange!S && is(immutable ElementType!S == immutable wchar)))Ditto
fn
uint stride(S)(auto ref S str) if (is(S : const wchar[])) @safe pureDitto
fn
uint stride(S)(auto ref S str) if (isInputRange!S && is(immutable ElementType!S == immutable wchar) &&
!is(S : const wchar[]))Ditto
fn
uint stride(S)(auto ref S str, size_t index = 0) if (is(S : const dchar[]) ||
(isInputRange!S && is(immutable ElementEncodingType!S == immutable dchar)))Ditto