31#ifndef ETL_U8STRING_INCLUDED
32#define ETL_U8STRING_INCLUDED
47#if ETL_USING_CPP11 && ETL_HAS_NATIVE_CHAR8_T
48 inline namespace literals
52 constexpr etl::u8string_view operator ""_sv(
const char8_t* str,
size_t length)
noexcept
67 template <
size_t MAX_SIZE_>
75 typedef iu8string::value_type value_type;
77 static ETL_CONSTANT
size_t MAX_SIZE =
MAX_SIZE_;
126 ETL_EXPLICIT_STRING_FROM_CHAR
u8string(
const value_type* text)
140 this->
assign(text, text + count);
161 template <
typename TIterator>
165 this->
assign(first, last);
168#if ETL_HAS_INITIALIZER_LIST
198 if (position != this->
size())
250#if ETL_HAS_ISTRING_REPAIR
251 virtual void repair() ETL_OVERRIDE
261 value_type buffer[MAX_SIZE + 1];
264 template <
size_t MAX_SIZE_>
265 ETL_CONSTANT
size_t u8string<MAX_SIZE_>::MAX_SIZE;
278 typedef iu8string::value_type value_type;
350 this->
assign(text, text + count);
371 template <
typename TIterator>
375 this->
assign(first, last);
378#if ETL_HAS_INITIALIZER_LIST
382 u8string_ext(std::initializer_list<value_type>
init, value_type* buffer, size_type buffer_size)
439#if ETL_HAS_ISTRING_REPAIR
440 virtual void repair() ETL_OVERRIDE
458#if ETL_USING_8BIT_TYPES
461 struct hash<
etl::iu8string>
465 return etl::private_hash::generic_hash<size_t>(
reinterpret_cast<const uint8_t*
>(text.
data()),
466 reinterpret_cast<const uint8_t*
>(text.
data() + text.
size()));
470 template <
size_t SIZE>
471 struct hash<
etl::u8string<SIZE> >
475 return etl::private_hash::generic_hash<size_t>(
reinterpret_cast<const uint8_t*
>(text.data()),
476 reinterpret_cast<const uint8_t*
>(text.data() + text.size()));
481 struct hash<
etl::u8string_ext>
485 return etl::private_hash::generic_hash<size_t>(
reinterpret_cast<const uint8_t*
>(text.
data()),
486 reinterpret_cast<const uint8_t*
>(text.
data() + text.
size()));
495 template<
size_t Array_Size>
504 template<
size_t MAX_SIZE,
size_t SIZE>
Definition basic_string.h:326
void resize(size_type new_size)
Definition basic_string.h:456
void assign(const etl::ibasic_string< T > &other)
Definition basic_string.h:636
pointer data()
Definition basic_string.h:599
void initialise()
Initialise the string.
Definition basic_string.h:2299
void repair_buffer(T *p_buffer_)
Fix the internal pointers after a low level memory copy.
Definition basic_string.h:2312
size_type length() const
Definition basic_string.h:185
size_type current_size
The current number of elements in the string.
Definition basic_string.h:311
size_type size() const
Definition basic_string.h:176
Definition basic_string.h:98
Definition u8string.h:272
u8string_ext(TIterator first, TIterator last, value_type *buffer, size_type buffer_size, typename etl::enable_if<!etl::is_integral< TIterator >::value, int >::type=0)
Definition u8string.h:372
u8string_ext(const char8_t *text, char8_t *buffer, size_type buffer_size)
Definition u8string.h:328
u8string_ext & operator=(const u8string_ext &rhs)
Assignment operator.
Definition u8string.h:402
u8string_ext(const etl::u8string_ext &other, value_type *buffer, size_type buffer_size)
Definition u8string.h:294
u8string_ext(const etl::iu8string &other, value_type *buffer, size_type buffer_size, size_type position, size_type length=npos)
Definition u8string.h:316
void repair()
Fix the internal pointers after a low level memory copy.
Definition u8string.h:442
u8string_ext(value_type *buffer, size_type buffer_size)
Constructor.
Definition u8string.h:284
u8string_ext(const value_type *text, size_type count, value_type *buffer, size_type buffer_size)
Definition u8string.h:347
u8string_ext(const etl::iu8string &other, value_type *buffer, size_type buffer_size)
Definition u8string.h:304
u8string_ext(size_type count, value_type c, value_type *buffer, size_type buffer_size)
Definition u8string.h:358
u8string_ext(const etl::u8string_view &view, value_type *buffer, size_type buffer_size)
Definition u8string.h:393
u8string & operator=(const u8string &rhs)
Assignment operator.
Definition u8string.h:213
u8string(const value_type *text, size_t count)
Definition u8string.h:137
u8string(size_type count, value_type c)
Definition u8string.h:148
void repair()
Fix the internal pointers after a low level memory copy.
Definition u8string.h:253
etl::u8string< MAX_SIZE_ > substr(size_type position=0, size_type length_=npos) const
Definition u8string.h:194
u8string(const etl::u8string_view &view)
Definition u8string.h:183
u8string(const etl::iu8string &other, size_t position, size_t length=npos)
Definition u8string.h:114
u8string(const etl::u8string< MAX_SIZE_ > &other)
Definition u8string.h:92
ETL_EXPLICIT_STRING_FROM_CHAR u8string(const value_type *text)
Definition u8string.h:126
u8string()
Constructor.
Definition u8string.h:82
u8string(TIterator first, TIterator last, typename etl::enable_if<!etl::is_integral< TIterator >::value, int >::type=0)
Definition u8string.h:162
u8string(const etl::iu8string &other)
Definition u8string.h:102
#define ETL_ASSERT(b, e)
Definition error_handler.h:316
enable_if
Definition type_traits_generator.h:1191
is_integral
Definition type_traits_generator.h:1001
bitset_ext
Definition absolute.h:38
etl::string< Array_Size - 1U > make_string(const char(&text)[Array_Size])
Hash function.
Definition string.h:493
etl::string< MAX_SIZE > make_string_with_capacity(const char(&text)[SIZE])
Make string with max capacity from string literal or array.
Definition string.h:502
ETL_CONSTEXPR14 size_t strlen(const T *t)
Alternative strlen for all character types.
Definition char_traits.h:285
Character traits for any character type.
Definition char_traits.h:120
pair holds two objects of arbitrary type
Definition utility.h:164
ETL_CONSTEXPR pair()
Default constructor.
Definition utility.h:176