Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
string_util.h
Go to the documentation of this file.
1 #pragma once
2 #include <functional>
3 #include <string>
4 
5 namespace hgps::core {
6 
10 std::string trim(std::string value) noexcept;
11 
15 std::string to_lower(const std::string_view &value) noexcept;
16 
20 std::string to_upper(const std::string_view &value) noexcept;
21 
26 std::vector<std::string_view> split_string(const std::string_view &value,
27  std::string_view delims) noexcept;
28 
30 struct case_insensitive final {
31 
33  struct comparator {
38  bool operator()(const std::string_view &left, const std::string_view &right) const;
39  };
40 
45  static std::weak_ordering compare(const std::string_view &left,
46  const std::string_view &right) noexcept;
47 
52  static bool equals(const std::string_view &left, const std::string_view &right) noexcept;
53 
58  static bool contains(const std::string_view &text, const std::string_view &str) noexcept;
59 
64  static bool contains(const std::vector<std::string> &source,
65  const std::string_view &element) noexcept;
66 
71  static bool starts_with(const std::string_view &text, const std::string_view &str) noexcept;
72 
77  static bool ends_with(const std::string_view &text, const std::string_view &str) noexcept;
78 
83  static int index_of(const std::vector<std::string> &source,
84  const std::string_view &element) noexcept;
85 
86  private:
87  static bool equal_char(char left, char right) noexcept;
88 };
89 } // namespace hgps::core
Top-level namespace for Health-GPS Core C++ API.
Definition: analysis.h:7
std::vector< std::string_view > split_string(const std::string_view &value, std::string_view delims) noexcept
Splits a string into substrings based on specified delimiting characters.
Definition: string_util.cpp:32
std::string to_lower(const std::string_view &value) noexcept
Converts the given ASCII string to lower-case.
Definition: string_util.cpp:16
std::string trim(std::string value) noexcept
Trim leading and trailing occurrences of white-space characters from string.
Definition: string_util.cpp:6
std::string to_upper(const std::string_view &value) noexcept
Converts the given ASCII string to upper-case.
Definition: string_util.cpp:24
Case-insensitive ASCII strings comparator structure.
Definition: string_util.h:33
bool operator()(const std::string_view &left, const std::string_view &right) const
Case-insensitive ASCII strings default comparer.
Definition: string_util.cpp:53
Case-insensitive operations on ASCII strings.
Definition: string_util.h:30
static std::weak_ordering compare(const std::string_view &left, const std::string_view &right) noexcept
Weak-ordering case-insensitive ASCII strings comparer.
Definition: string_util.cpp:60
static int index_of(const std::vector< std::string > &source, const std::string_view &element) noexcept
Finds the zero-based index of the first occurrence of an element in a vector.
Definition: string_util.cpp:128
static bool equals(const std::string_view &left, const std::string_view &right) noexcept
Compare two case-insensitive ASCII string for equality.
Definition: string_util.cpp:76
static bool contains(const std::string_view &text, const std::string_view &str) noexcept
Checks whether a specified substring occurs within a ASCII string.
Definition: string_util.cpp:82
static bool ends_with(const std::string_view &text, const std::string_view &str) noexcept
Determines whether the end of a ASCII string matches a specified string.
Definition: string_util.cpp:108
static bool starts_with(const std::string_view &text, const std::string_view &str) noexcept
Determines whether the start of a ASCII string matches a specified string.
Definition: string_util.cpp:95