17#ifndef TOOLBOX_UTIL_STRINGBUF_HPP
18#define TOOLBOX_UTIL_STRINGBUF_HPP
25#include <boost/container_hash/hash.hpp>
28inline namespace util {
31template <std::
size_t MaxN>
34 template <std::
size_t MaxR>
67 template <std::
size_t MaxR>
87 template <
typename TypeT>
90 return compare(
rhs.data(),
rhs.size());
92 template <
typename TypeT>
95 return size() ==
rhs.size() && compare(
rhs.data(),
rhs.size()) == 0;
103#pragma GCC diagnostic push
104#pragma GCC diagnostic ignored "-Wnonnull"
105 std::memcpy(buf_,
rdata, len_);
106#pragma GCC diagnostic pop
117 auto compare(
const char*
rdata, std::size_t
rlen)
const noexcept
131template <std::
size_t MaxN>
134 return {
s.data(),
s.size()};
137template <std::
size_t MaxN,
typename StreamT>
141 os << std::string_view{
rhs.data(),
rhs.size()};
149template <std::
size_t MaxN>
150struct hash<
toolbox::util::StringBuf<MaxN>> {
154 boost::hash_combine(h, +key);
ostream & operator<<(ostream &os, const pair< T, U > &p)