11#include <fmt/format.h>
13#include <userver/formats/serialize/to.hpp>
14#include <userver/utils/assert.hpp>
16USERVER_NAMESPACE_BEGIN
25 NullTerminatedView() =
delete;
27 constexpr NullTerminatedView(
const char* str)
noexcept : std::string_view{str} {
31 NullTerminatedView(
const std::string& str)
noexcept : std::string_view{str} {}
33 constexpr const char* c_str()
const noexcept {
return data(); }
42 constexpr NullTerminatedView(
const char* str, std::size_t len)
noexcept : std::string_view{str, len} {
44 UASSERT_MSG(str[len] ==
'\0',
"Not null terminated");
50 return typename Value::Builder(std::string_view{view}).ExtractValue();
58struct fmt::formatter<USERVER_NAMESPACE::utils::NullTerminatedView,
char> : fmt::formatter<std::string_view> {};