26 inline bool Contains(
const TString& in_rStr,
const TSubString& in_rSubStr,
bool in_isCaseSensitive)
28 using TStringView = expr::PrecedentInferredStringView<TString, TSubString>;
30 const auto strings = PrecedentConvert(in_rStr, in_rSubStr);
32 const auto& rStr = strings[0];
33 const auto& rSubStr = strings[1];
35 if (rStr.length() < rSubStr.length())
38 if (!in_isCaseSensitive)
40 using TChar = expr::GetCharType_t<TStringView>;
42 const auto it = std::search(rStr.begin(), rStr.end(), rSubStr.begin(), rSubStr.end(),
46 return std::tolower(l) == std::tolower(r);
50 return it != rStr.end();
53 return rStr.find(rSubStr) != TStringView::npos;