17#ifndef ALICEO2_STRINGUTILS_H
18#define ALICEO2_STRINGUTILS_H
23#include <fmt/format.h>
39 static inline void ltrim(std::string& s)
41 s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](
int ch) { return !std::isspace(ch); }));
44 static inline void ltrim(std::string& s,
const std::string&
start)
47 s.erase(0,
start.size());
55 static inline void rtrim(std::string& s)
57 s.erase(std::find_if(s.rbegin(), s.rend(), [](
int ch) { return !std::isspace(ch); }).base(), s.end());
60 static inline void rtrim(std::string& s,
const std::string& ending)
63 s.erase(s.size() - ending.size(), ending.size());
71 static inline void trim(std::string& s)
82 static inline std::string
ltrim_copy(
const std::string& s)
89 static inline std::string
ltrim_copy(
const std::string& s,
const std::string&
start)
108 static inline std::string
rtrim_copy(
const std::string& s,
const std::string& ending)
120 static inline std::string
trim_copy(
const std::string& s)
127 static inline bool endsWith(
const std::string& s,
const std::string& ending)
129 return (ending.size() > s.size()) ? false : std::equal(ending.rbegin(), ending.rend(), s.rbegin());
134 return (
start.size() > s.size()) ? false : std::equal(
start.begin(),
start.end(), s.begin());
138 static std::vector<std::string>
tokenize(
const std::string&
src,
char delim,
bool trimToken =
true,
bool skipEmpty =
true);
141 template <
typename...
Ts>
153 static bool pathExists(
const std::string_view p);
159 static std::string
getFullPath(
const std::string_view p);
GLuint GLsizei GLsizei * length
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Common utility functions.
static void ltrim(std::string &s)
static bool pathIsDirectory(const std::string_view p)
static void trim(std::string &s)
static std::string rectifyDirectory(const std::string_view p)
static void ltrim(std::string &s, const std::string &start)
static std::string ltrim_copy(const std::string &s, const std::string &start)
static bool pathExists(const std::string_view p)
static std::string ltrim_copy(const std::string &s)
static bool beginsWith(const std::string &s, const std::string &start)
static std::vector< std::string > tokenize(const std::string &src, char delim, bool trimToken=true, bool skipEmpty=true)
static std::string trim_copy(const std::string &s)
static std::string rtrim_copy(const std::string &s)
static std::string concat_string(Ts const &... ts)
static void rtrim(std::string &s, const std::string &ending)
static std::string getFullPath(const std::string_view p)
static std::string create_unique_path(const std::string_view prefix="", int length=16)
static bool endsWith(const std::string &s, const std::string &ending)
static void rtrim(std::string &s)
static std::string getRandomString(int length)
static std::string rtrim_copy(const std::string &s, const std::string &ending)