Skip to content

Commit 389aa23

Browse files
committed
Add a common search functions.
1 parent fec56d3 commit 389aa23

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

packages/logging/include/logging/String.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ namespace l::string {
105105
bool equal(const char* a, const char* b, size_t a_offset = 0, size_t b_offset = 0, size_t maxCount = 20);
106106
bool equal_partial(const char* a, const char* b, size_t a_offset = 0, size_t b_offset = 0, size_t maxCount = 20);
107107
bool equal_partial(std::string_view a, std::string_view b, size_t a_offset = 0, size_t b_offset = 0);
108+
bool equal_anywhere(std::string_view a, std::string_view b);
108109

109110
std::vector<std::wstring_view> split(std::wstring_view text, std::wstring_view delim = L" \t\n", char escapeChar = '\"');
110111
std::vector<std::string_view> split(std::string_view text, std::string_view delim = " \t\n", char escapeChar = '\"');

packages/logging/source/common/String.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,21 @@ namespace l::string {
418418
return true;
419419
}
420420

421+
bool equal_anywhere(std::string_view src, std::string_view search) {
422+
if (search.empty()) {
423+
return false;
424+
}
425+
bool found = false;
426+
int32_t searchSize = search.size();
427+
for (int32_t i = 0; i <= src.size() - searchSize; i++) {
428+
if (src.substr(i, searchSize) == search) {
429+
found = true;
430+
break;
431+
}
432+
}
433+
return found;
434+
}
435+
421436
std::vector<std::wstring_view> split(std::wstring_view text, std::wstring_view delim, char escapeChar) {
422437
std::vector<std::wstring_view> out;
423438

0 commit comments

Comments
 (0)