stride

fnuint 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

strinput range of UTF code units. Must be random access if index is passed
indexstarting index of UTF sequence (default: 0)

Returns

The number of code units in the UTF sequence. For UTF-8, this is a

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.

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.
fnuint stride(S)(auto ref S str) if (is(S : const char[]) || (isInputRange!S && is(immutable ElementType!S == immutable char)))

Ditto

fnuint stride(S)(auto ref S str, size_t index) if (is(S : const wchar[]) || (isRandomAccessRange!S && is(immutable ElementType!S == immutable wchar)))

Ditto

fnuint stride(S)(auto ref S str) if (is(S : const wchar[])) @safe pure

Ditto

fnuint stride(S)(auto ref S str) if (isInputRange!S && is(immutable ElementType!S == immutable wchar) && !is(S : const wchar[]))

Ditto

fnuint stride(S)(auto ref S str, size_t index = 0) if (is(S : const dchar[]) || (isInputRange!S && is(immutable ElementEncodingType!S == immutable dchar)))

Ditto