#include <userver/utils/small_string.hpp>
An alternative to std::string with a custom SSO (small string optimization) container size. Unlike std::string, SmallString is not null-terminated thus it has no c_str(), data() returns a not null-terminated buffer.
Definition at line 26 of file small_string.hpp.
Public Types | |
| using | iterator = typename Container::iterator |
| using | const_iterator = typename Container::const_iterator |
Public Member Functions | |
| SmallString ()=default | |
| Create empty string. | |
| SmallString (const SmallString< N > &)=default | |
| Create a string from another one. | |
| SmallString (SmallString< N > &&) noexcept=default | |
| Create a string from another one. | |
| SmallString (std::string_view sv) | |
| Create a string from std::string_view. | |
| SmallString & | operator= (std::string_view sv) |
| Assign the value of other string_view to this string. | |
| SmallString & | operator= (const SmallString &)=default |
| Assign the value of other string to this string. | |
| SmallString & | operator= (SmallString &&) noexcept=default |
| Assign the value of other string to this string. | |
| operator std::string_view () const | |
| Convert string to a std::string_view. | |
| const char & | operator[] (std::size_t pos) const |
| Read-only subscript access to the data contained in the string. | |
| char & | operator[] (std::size_t pos) |
| Subscript access to the data contained in the string. | |
| const char & | at (std::size_t pos) const |
| Provides access to the data contained in the string. | |
| char & | at (std::size_t pos) |
| Provides access to the data contained in the string. | |
| iterator | begin () noexcept |
| const_iterator | begin () const noexcept |
| iterator | end () noexcept |
| const_iterator | end () const noexcept |
| std::size_t | size () const noexcept |
| Get string size. | |
| const char * | data () const noexcept |
| Get pointer to data. | |
| char * | data () noexcept |
| Get pointer to data. | |
| void | resize (std::size_t n, char c) |
| Resize the string. If its length is increased, fill new chars with c. | |
| template<class Operation > | |
| void | resize_and_overwrite (std::size_t size, Operation op) |
| Resize the string. Use op to write into the string and replace a sequence of characters. | |
| void | shrink_to_fit () |
| Shrink the string's size to fit all contents. | |
| std::size_t | capacity () const noexcept |
| Get current capacity. | |
| void | reserve (std::size_t n) |
| Reserve to n bytes. | |
| void | clear () noexcept |
| Clear the string. | |
| bool | empty () const noexcept |
| Is the string empty? | |
| char & | front () |
| Get a reference to the first character. | |
| const char & | front () const |
| Get a reference to the first character. | |
| char & | back () |
| Get a reference to the last character. | |
| const char & | back () const |
| Get a reference to the last character. | |
| void | push_back (char c) |
| Append a character to the string. | |
| void | append (std::string_view str) |
| Append contents of a string_view to the string. | |
| void | pop_back () |
| Remove the last character from the string. | |
| using utils::SmallString< N >::const_iterator = typename Container::const_iterator |
Definition at line 68 of file small_string.hpp.
| using utils::SmallString< N >::iterator = typename Container::iterator |
Definition at line 66 of file small_string.hpp.
|
explicit |
Create a string from std::string_view.
Definition at line 137 of file small_string.hpp.
| void utils::SmallString< N >::append | ( | std::string_view | str | ) |
Append contents of a string_view to the string.
Definition at line 259 of file small_string.hpp.
| char & utils::SmallString< N >::at | ( | std::size_t | pos | ) |
Provides access to the data contained in the string.
Definition at line 188 of file small_string.hpp.
| const char & utils::SmallString< N >::at | ( | std::size_t | pos | ) | const |
Provides access to the data contained in the string.
Definition at line 182 of file small_string.hpp.
| char & utils::SmallString< N >::back | ( | ) |
Get a reference to the last character.
Definition at line 244 of file small_string.hpp.
| const char & utils::SmallString< N >::back | ( | ) | const |
Get a reference to the last character.
Definition at line 249 of file small_string.hpp.
|
noexcept |
Definition at line 199 of file small_string.hpp.
|
noexcept |
Definition at line 194 of file small_string.hpp.
|
noexcept |
Get current capacity.
Definition at line 289 of file small_string.hpp.
|
noexcept |
Clear the string.
Definition at line 299 of file small_string.hpp.
|
noexcept |
Get pointer to data.
Definition at line 219 of file small_string.hpp.
|
noexcept |
Get pointer to data.
Definition at line 224 of file small_string.hpp.
|
noexcept |
Is the string empty?
Definition at line 229 of file small_string.hpp.
|
noexcept |
Definition at line 209 of file small_string.hpp.
|
noexcept |
Definition at line 204 of file small_string.hpp.
| char & utils::SmallString< N >::front | ( | ) |
Get a reference to the first character.
Definition at line 234 of file small_string.hpp.
| const char & utils::SmallString< N >::front | ( | ) | const |
Get a reference to the first character.
Definition at line 239 of file small_string.hpp.
| utils::SmallString< N >::operator std::string_view | ( | ) | const |
Convert string to a std::string_view.
Definition at line 141 of file small_string.hpp.
| SmallString< N > & utils::SmallString< N >::operator= | ( | std::string_view | sv | ) |
Assign the value of other string_view to this string.
Definition at line 146 of file small_string.hpp.
| char & utils::SmallString< N >::operator[] | ( | std::size_t | pos | ) |
Subscript access to the data contained in the string.
Definition at line 177 of file small_string.hpp.
| const char & utils::SmallString< N >::operator[] | ( | std::size_t | pos | ) | const |
Read-only subscript access to the data contained in the string.
Definition at line 172 of file small_string.hpp.
| void utils::SmallString< N >::pop_back | ( | ) |
Remove the last character from the string.
Definition at line 265 of file small_string.hpp.
| void utils::SmallString< N >::push_back | ( | char | c | ) |
Append a character to the string.
Definition at line 254 of file small_string.hpp.
| void utils::SmallString< N >::reserve | ( | std::size_t | n | ) |
Reserve to n bytes.
Definition at line 294 of file small_string.hpp.
| void utils::SmallString< N >::resize | ( | std::size_t | n, |
| char | c ) |
Resize the string. If its length is increased, fill new chars with c.
Definition at line 270 of file small_string.hpp.
| void utils::SmallString< N >::resize_and_overwrite | ( | std::size_t | size, |
| Operation | op ) |
Resize the string. Use op to write into the string and replace a sequence of characters.
Definition at line 276 of file small_string.hpp.
| void utils::SmallString< N >::shrink_to_fit | ( | ) |
Shrink the string's size to fit all contents.
Definition at line 284 of file small_string.hpp.
|
noexcept |
Get string size.
Definition at line 214 of file small_string.hpp.