27class SmallString final {
28 using Container = boost::container::small_vector<
char, N>;
31 using value_type =
char;
49 SmallString&
operator=(
const SmallString&) =
default;
52 SmallString&
operator=(SmallString&&)
noexcept =
default;
54 SmallString& operator+=(std::string_view sv) {
59 SmallString& operator+=(
char c) {
65 operator std::string_view()
const USERVER_IMPL_LIFETIME_BOUND;
68 const char&
operator[](std::size_t pos)
const USERVER_IMPL_LIFETIME_BOUND;
71 char&
operator[](std::size_t pos) USERVER_IMPL_LIFETIME_BOUND;
74 const char&
at(std::size_t pos)
const USERVER_IMPL_LIFETIME_BOUND;
77 char&
at(std::size_t pos) USERVER_IMPL_LIFETIME_BOUND;
79 using iterator =
typename Container::iterator;
81 using const_iterator =
typename Container::const_iterator;
83 iterator begin()
noexcept USERVER_IMPL_LIFETIME_BOUND;
84 const_iterator begin()
const noexcept USERVER_IMPL_LIFETIME_BOUND;
86 iterator end()
noexcept USERVER_IMPL_LIFETIME_BOUND;
87 const_iterator end()
const noexcept USERVER_IMPL_LIFETIME_BOUND;
90 std::size_t
size()
const noexcept;
94 const char*
data()
const noexcept USERVER_IMPL_LIFETIME_BOUND;
98 char*
data()
noexcept USERVER_IMPL_LIFETIME_BOUND;
110 template <
class Operation>
129 char&
front() USERVER_IMPL_LIFETIME_BOUND;
132 const char&
front()
const USERVER_IMPL_LIFETIME_BOUND;
135 char&
back() USERVER_IMPL_LIFETIME_BOUND;
138 const char&
back()
const USERVER_IMPL_LIFETIME_BOUND;
147 void append(
const char* begin,
const char* end);
150 template <
class InputIt>
151 void insert(const_iterator pos, InputIt begin, InputIt end);
157 boost::container::small_vector<
char, N> data_;