26#ifndef ROUTER_SRC_REST_MRS_SRC_HELPER_STRING_CONTAINS_H_
27#define ROUTER_SRC_REST_MRS_SRC_HELPER_STRING_CONTAINS_H_
36template <
typename String1,
typename String2>
42template <
typename String1,
typename String2>
47 if (ss > sv)
return false;
49 auto serach_break_at = sv - ss;
51 size_t found_chars = 0;
52 for (
size_t i = 0; i < sv && found_chars != ss; ++i) {
53 if (!found_chars && (i > serach_break_at))
break;
63 return found_chars == ss;
67 if (sst.empty())
return false;
69 auto pos =
value.rfind(sst);
70 if (
value.npos == pos)
return false;
71 return value.length() - pos == sst.length();
74template <
typename String>
76 auto pos =
value.find(search_for);
78 if (
value.npos == pos)
return false;
79 if (idx) *idx =
static_cast<uint32_t
>(pos);
84inline bool index(
const char *
value,
const char *search_for, uint32_t *idx) {
85 auto ptr = strstr(
value, search_for);
86 if (
nullptr == ptr)
return false;
91template <
typename String1,
typename String2>
94 if (
is_empty(search_for))
return false;
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:167
bool distance(const dd::Spatial_reference_system *srs, const Geometry *g1, const Geometry *g2, double *distance, bool *is_null) noexcept
Computes the distance between two geometries.
Definition: distance.cc:40
const char * cstr(const char *str)
Definition: generic.h:36
bool is_empty(const std::string &str)
Definition: generic.h:34
size_t size(const char *str)
Definition: generic.h:38
bool icontains(const String1 &value, const String2 &sst)
Definition: contains.h:43
bool contains(const String1 &value, const String2 &sst)
Definition: contains.h:37
bool ends_with(const std::string &value, const std::string &sst)
Definition: contains.h:66
bool starts_with(const String1 &value, const String2 &search_for)
Definition: contains.h:92
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:75
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
char tolower(const char &ch)
Definition: parsing_helpers.h:41