834 {
836 if (!s || count == 0) return *this;
837
838
841 }
842
843 fl::size newLen =
mLength + count;
844
845
852 newData->data()[newLen] = '\0';
855 return *this;
856 }
857
858
862 }
866 return *this;
867 }
868
869
871 if (canInsertInPlace) {
873 canInsertInPlace = heap.get().use_count() <= 1 && heap->hasCapacity(newLen);
874 if (canInsertInPlace) {
875 char*
data = heap->data();
880 }
881 }
882 if (!canInsertInPlace) {
884 const char* src =
c_str();
888 newData->data()[newLen] = '\0';
891 }
892 return *this;
893}
bool isNonOwning() const FL_NOEXCEPT
bool hasHeapData() const FL_NOEXCEPT
void materialize() FL_NOEXCEPT
NotNullStringHolderPtr & heapData() FL_NOEXCEPT
const char * data() const FL_NOEXCEPT
fl::variant< NotNullStringHolderPtr, ConstLiteral, ConstView > mStorage
char * inlineBufferPtr() FL_NOEXCEPT
const char * c_str() const FL_NOEXCEPT
void * memcpy(void *dest, const void *src, size_t n) FL_NOEXCEPT
fl::not_null< StringHolderPtr > NotNullStringHolderPtr
void * memmove(void *dest, const void *src, size_t n) FL_NOEXCEPT
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
pair_element< I, T1, T2 >::type & get(pair< T1, T2 > &p) FL_NOEXCEPT