26#ifndef ROUTER_SRC_REST_MRS_SRC_HELPER_STRING_CONTAINS_H_
27#define ROUTER_SRC_REST_MRS_SRC_HELPER_STRING_CONTAINS_H_
37template <
typename String1,
typename String2>
43template <
typename String1,
typename String2>
48 if (ss > sv)
return false;
50 auto serach_break_at = sv - ss;
52 size_t found_chars = 0;
53 for (
size_t i = 0; i < sv && found_chars != ss; ++i) {
54 if (!found_chars && (i > serach_break_at))
break;
64 return found_chars == ss;
68 if (sst.empty())
return false;
70 auto pos =
value.rfind(sst);
71 if (
value.npos == pos)
return false;
72 return value.length() - pos == sst.length();
75template <
typename String>
77 auto pos =
value.find(search_for);
79 if (
value.npos == pos)
return false;
80 if (idx) *idx =
static_cast<uint32_t
>(pos);
85inline bool index(
const char *
value,
const char *search_for, uint32_t *idx) {
86 auto ptr = strstr(
value, search_for);
87 if (
nullptr == ptr)
return false;
92template <
typename String1,
typename String2>
95 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:169
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:44
bool contains(const String1 &value, const String2 &sst)
Definition: contains.h:38
bool ends_with(const std::string &value, const std::string &sst)
Definition: contains.h:67
bool starts_with(const String1 &value, const String2 &search_for)
Definition: contains.h:93
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
char tolower(const char &ch)
Definition: parsing_helpers.h:41