20 #ifndef RIPPLE_BASICS_STRINGUTILITIES_H_INCLUDED
21 #define RIPPLE_BASICS_STRINGUTILITIES_H_INCLUDED
23 #include <ripple/basics/Blob.h>
24 #include <ripple/basics/strHex.h>
26 #include <boost/format.hpp>
27 #include <boost/optional.hpp>
28 #include <boost/utility/string_view.hpp>
47 template <
class Iterator>
53 out.reserve((strSize + 1) / 2);
82 out.push_back(
static_cast<unsigned char>((cHigh << 4) | cLow));
85 return {std::move(
out)};
88 inline boost::optional<Blob>
94 inline boost::optional<Blob>
97 return strUnHex(strSrc.size(), strSrc.cbegin(), strSrc.cend());
108 boost::optional<std::uint16_t>
port;
125 boost::optional<std::uint64_t>
std::vector< unsigned char > Blob
Storage for linear binary data.
int charUnHex(unsigned char c)
Converts a hex digit to the corresponding integer.
boost::optional< std::uint64_t > to_uint64(std::string const &s)
boost::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
bool operator==(parsedURL const &other) const
std::string trim_whitespace(std::string str)
bool parseUrl(parsedURL &pUrl, std::string const &strUrl)
boost::optional< std::uint16_t > port
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
boost::optional< Blob > strViewUnHex(boost::string_view const &strSrc)
bool isProperlyFormedTomlDomain(std::string const &domain)
Determines if the given string looks like a TOML-file hosting domain.
std::string sqlBlobLiteral(Blob const &blob)
Format arbitrary binary data as an SQLite "blob literal".