mal-packet-weaver
C++20 packet serialization/deserialization library.
Loading...
Searching...
No Matches
string.hpp
Go to the documentation of this file.
1#pragma once
7namespace mal_toolkit
8{
14 inline std::string as_lowercase(std::string_view const s) noexcept
15 {
16 std::string rv;
17 rv.reserve(s.size());
18 std::ranges::for_each(s, [&rv](char const &c) { rv += static_cast<char>(std::tolower(c)); });
19 return rv;
20 }
21
27 inline std::string as_uppercase(std::string_view const s) noexcept
28 {
29 std::string rv;
30 rv.reserve(s.size());
31 std::ranges::for_each(s, [&rv](char const &c) { rv += static_cast<char>(std::toupper(c)); });
32 return rv;
33 }
34
40 constexpr std::string_view ltrimview(std::string_view const s) noexcept
41 {
42 return std::string_view(std::ranges::find_if(s, [](unsigned char ch) { return !std::isspace(ch); }), s.end());
43 }
44
50 constexpr std::string_view rtrimview(std::string_view const s) noexcept
51 {
52 return std::string_view(
53 s.begin(), std::find_if(s.rbegin(), s.rend(), [](unsigned char ch) { return !std::isspace(ch); }).base());
54 }
55
61 constexpr std::string_view trimview(std::string_view const s) noexcept { return ltrimview(rtrimview(s)); }
62
68 inline std::string ltrim(std::string const &s) noexcept { return std::string(ltrimview(s)); }
74 inline std::string rtrim(std::string const &s) noexcept { return std::string(rtrimview(s)); }
75
81 inline std::string trim(std::string const &s) noexcept { return std::string(trimview(s)); }
82} // namespace mal_toolkit
Contains a collection of tools and utilities provided by the MAL Toolkit library.
Definition backoffs.hpp:7
std::string rtrim(std::string const &s) noexcept
Trims trailing whitespace from a string.
Definition string.hpp:74
constexpr std::string_view rtrimview(std::string_view const s) noexcept
Trims trailing whitespace from a string view.
Definition string.hpp:50
std::string as_lowercase(std::string_view const s) noexcept
Converts a string to lowercase.
Definition string.hpp:14
std::string as_uppercase(std::string_view const s) noexcept
Converts a string to uppercase.
Definition string.hpp:27
constexpr std::string_view trimview(std::string_view const s) noexcept
Trims leading and trailing whitespace from a string view.
Definition string.hpp:61
std::string trim(std::string const &s) noexcept
Trims leading and trailing whitespace from a string.
Definition string.hpp:81
constexpr std::string_view ltrimview(std::string_view const s) noexcept
Trims leading whitespace from a string view.
Definition string.hpp:40
std::string ltrim(std::string const &s) noexcept
Trims leading whitespace from a string.
Definition string.hpp:68