From 6232d13f5321b87ddf12a1aa36b4545da45f173d Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 17 Nov 2021 22:34:57 +0100 Subject: Travel3: Simple image and video display site Reads the images and videos from filesystem and builds a site in memroy. --- src/strutil.hh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/strutil.hh (limited to 'src/strutil.hh') diff --git a/src/strutil.hh b/src/strutil.hh new file mode 100644 index 0000000..28bbf55 --- /dev/null +++ b/src/strutil.hh @@ -0,0 +1,51 @@ +#ifndef STRUTIL_HH +#define STRUTIL_HH + +#include +#include +#include +#include +#include + +namespace str { + +std::optional parse_uint16(std::string const& str); +std::optional parse_uint32(std::string const& str); +std::optional parse_uint64(std::string const& str); + +// Empty substrings are ignored but out will always be at least one entry +std::vector split(std::string_view str, char delim = ' '); + +std::vector split(std::string const& str, char delim = ' '); + +std::string join(std::vector const& in, char delim); +std::string join(std::vector const& in, std::string_view delim); + +void join(std::vector const& in, char delim, std::string& out); +void join(std::vector const& in, std::string_view delim, + std::string& out); + +std::string join(std::vector const& in, char delim); +std::string join(std::vector const& in, + std::string_view delim); + +void join(std::vector const& in, char delim, + std::string& out); +void join(std::vector const& in, std::string_view delim, + std::string& out); + +[[nodiscard]] std::string_view trim(std::string_view str); +[[nodiscard]] std::string trim(std::string const& str); + +[[nodiscard]] std::string_view ltrim(std::string_view str); +[[nodiscard]] std::string ltrim(std::string const& str); + +[[nodiscard]] std::string_view rtrim(std::string_view str); +[[nodiscard]] std::string rtrim(std::string const& str); + +[[nodiscard]] bool starts_with(std::string_view str, std::string_view prefix); +[[nodiscard]] bool ends_with(std::string_view str, std::string_view suffix); + +} // namespace str + +#endif // STRUTIL_HH -- cgit v1.2.3-70-g09d2