29 if (m_hasResult || (!m_giveUpTerm.empty() && m_giveUpTermIterator == m_giveUpTerm.end())) {
32 for (
auto i = buffer, end = buffer + bufferSize;
i != end; ++
i) {
33 const auto currentChar = *
i;
34 if (m_searchTermIterator == m_searchTerm.end()) {
35 if (m_terminationChars.empty()) {
38 for (
const auto &terminationChar : m_terminationChars) {
39 if (currentChar == terminationChar) {
46 m_callback(*
this, std::move(m_result));
49 m_result += currentChar;
52 if (currentChar == *m_searchTermIterator) {
53 ++m_searchTermIterator;
55 m_searchTermIterator = m_searchTerm.begin();
57 if (m_giveUpTerm.empty()) {
60 if (currentChar == *m_giveUpTermIterator) {
61 ++m_giveUpTermIterator;
63 m_giveUpTermIterator = m_giveUpTerm.begin();
73 m_searchTermIterator = m_searchTerm.begin();
74 m_giveUpTermIterator = m_giveUpTerm.begin();
75 m_terminationTermIterator = m_terminationTerm.begin();
void operator()(std::string_view buffer)
Processes the specified buffer.
void reset()
Resets the search to its initial state (assuming no characters of the search term or give-up term hav...
Contains all utilities provides by the c++utilities library.