Func to count consecutive ASCII chars starting at current Reader position.
This commit is contained in:
parent
7409f3bbd9
commit
e01c40ede5
|
@ -76,6 +76,11 @@ final class Reader
|
||||||
Endian endian_;
|
Endian endian_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The number of consecutive ASCII characters starting at bufferOffset_.
|
||||||
|
//
|
||||||
|
// Used to minimize UTF-8 decoding.
|
||||||
|
size_t upcomingASCII_ = 0;
|
||||||
|
|
||||||
// Index to buffer_ where the last decoded character starts.
|
// Index to buffer_ where the last decoded character starts.
|
||||||
size_t lastDecodedBufferOffset_ = 0;
|
size_t lastDecodedBufferOffset_ = 0;
|
||||||
// Offset, relative to charIndex_, of the last decoded character,
|
// Offset, relative to charIndex_, of the last decoded character,
|
||||||
|
@ -320,6 +325,12 @@ final class Reader
|
||||||
Encoding encoding() @safe pure nothrow const @nogc { return encoding_; }
|
Encoding encoding() @safe pure nothrow const @nogc { return encoding_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Update upcomingASCII_ (should be called forward()ing over a UTF-8 sequence)
|
||||||
|
void checkASCII() @safe pure nothrow @nogc
|
||||||
|
{
|
||||||
|
upcomingASCII_ = countASCII(buffer_[bufferOffset_ .. $]);
|
||||||
|
}
|
||||||
|
|
||||||
// Decode the next character relative to
|
// Decode the next character relative to
|
||||||
// lastDecodedCharOffset_/lastDecodedBufferOffset_ and update them.
|
// lastDecodedCharOffset_/lastDecodedBufferOffset_ and update them.
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue