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