2 #ifndef _YI_STRING_VIEW_H_ 3 #define _YI_STRING_VIEW_H_ 14 #if YI_FULLY_SUPPORTS_CPP14_CONSTEXPR 15 # define YI_CONSTEXPR constexpr 107 ConstReverseIterator
Reverse()
const;
110 static const size_t YI_STRING_ITERATOR_SIZE =
sizeof(
char *) * 3;
114 char m_storage[YI_STRING_ITERATOR_SIZE];
141 static constexpr
size_t NPos = std::numeric_limits<size_t>::max();
183 #if __cplusplus >= 201703L 192 #if defined(__OBJC__) || defined(DOXY) 277 char32_t
At(
size_t pos) const;
284 char32_t operator[](
size_t pos) const;
315 ConstReverseIterator
rbegin() const;
320 ConstReverseIterator
rend() const;
405 CYIStringView
SubStr(
size_t pos = 0,
size_t len = NPos) const;
415 CYIStringView
Left(
size_t len) const;
420 CYIStringView
Right(
size_t len) const;
447 size_t IndexOf(CYIStringView view,
size_t pos = 0) const;
456 size_t LastIndexOf(CYIStringView view,
size_t pos = NPos) const;
466 ConstReverseIterator
ReverseFind(CYIStringView view, const ConstReverseIterator &begin) const;
485 void Swap(CYIStringView &view);
539 std::unique_ptr<
char[]>
ToUTF8(
size_t *pElementsCount =
nullptr) const;
546 std::unique_ptr<char16_t[]>
ToUTF16(
size_t *pElementsCount =
nullptr) const;
553 std::unique_ptr<char32_t[]>
ToUTF32(
size_t *pElementsCount =
nullptr) const;
562 std::unique_ptr<
wchar_t[]>
ToWideChars(
size_t *pElementsCount =
nullptr) const;
585 #if defined(__OBJC__) || defined(DOXY) 612 T
To(
bool *pError =
nullptr)
const;
620 T
ToValue(
bool *pError =
nullptr)
const;
627 float ToFloat(
bool *pError =
nullptr)
const;
634 double ToDouble(
bool *pError =
nullptr)
const;
663 bool ToBool(
bool *pError =
nullptr)
const;
696 #include "utility/YiStringView.inl" CYIStringView SubStr(size_t pos=0, size_t len=NPos) const
std::bidirectional_iterator_tag iterator_category
Definition: YiStringView.h:74
const char32_t * pointer
Definition: YiStringView.h:77
const char * GetRawData() const
void RemovePrefix(size_t len)
std::unique_ptr< wchar_t[]> ToWideChars(size_t *pElementsCount=nullptr) const
double ToDouble(bool *pError=nullptr) const
A std::vector wrapper that makes use of pre-allocated memory for storing up to StackCapacity items...
Definition: YiSmallVector.h:32
CYIString ToUpperASCII() const
CaseMode
Definition: YiStringView.h:125
CYIString ToCYIString() const
CYISmallVector< CYIStringView, 3 > Split(CYIStringView delimiter, bool ignoreEmptySubstrings=true, size_t maximumParts=NPos) const
char32_t reference
Definition: YiStringView.h:78
std::string ToStdString() const
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:36
CYIString Arg(CYIStringView text) const
value_type operator*() const
ConstReverseIterator Reverse() const
#define YI_CONSTEXPR
Definition: YiStringView.h:18
T ToValue(bool *pError=nullptr) const
Definition: YiStringView.h:68
CFStringRef ToCFStringRef() const
NSString * ToNSString() const
bool operator>(CYIStringView lhs, CYIStringView rhs) noexcept
ConstIterator & operator=(const ConstIterator &other)
bool operator>=(CYIStringView lhs, CYIStringView rhs) noexcept
static constexpr size_t NPos
Definition: YiStringView.h:141
std::wstring ToStdWString() const
bool Contains(CYIStringView s, CaseMode caseSensitivity=CaseMode::CaseSensitive) const
char32_t value_type
Definition: YiStringView.h:75
int32_t Compare(CYIStringView other, CaseMode caseSensitivity=CaseMode::CaseSensitive) const noexcept
size_t LastIndexOf(CYIStringView view, size_t pos=NPos) const
void RemoveSuffix(size_t len)
bool operator==(const ConstIterator &other) const
CYIString ToLowerASCII() const
bool EndsWith(CYIStringView s, CaseMode caseSensitivity=CaseMode::CaseSensitive) const
void TrimLeft(size_t len=NPos)
bool Equals(CYIStringView other, CaseMode caseSensitivity=CaseMode::CaseSensitive) const noexcept
bool operator<=(CYIStringView lhs, CYIStringView rhs) noexcept
size_t IndexOf(CYIStringView view, size_t pos=0) const
ConstIterator end() const
ConstIterator Find(CYIStringView view, const ConstIterator &begin) const
std::reverse_iterator< Iterator > ReverseIterator
Definition: YiStringView.h:118
YI_CONSTEXPR bool IsNotEmpty() const
bool EqualsCaseInsensitiveASCII(CYIStringView other) const noexcept
bool operator!=(const ConstIterator &other) const
YI_CONSTEXPR char ByteAt(size_t byteOffset) const noexcept
friend class CYIStringView
Definition: YiStringView.h:71
ConstReverseIterator rend() const
std::unique_ptr< char32_t[]> ToUTF32(size_t *pElementsCount=nullptr) const
CYIString ToHexadecimal() const
ConstIterator begin() const
std::unique_ptr< char[]> ToUTF8(size_t *pElementsCount=nullptr) const
ConstReverseIterator rbegin() const
T To(bool *pError=nullptr) const
YI_CONSTEXPR size_t GetSizeInBytes() const noexcept
float ToFloat(bool *pError=nullptr) const
void TrimRight(size_t len=NPos)
ConstReverseIterator ReverseFind(CYIStringView view, const ConstReverseIterator &begin) const
std::ostream & operator<<(std::ostream &stream, const CYIStringView &val)
void Swap(CYIStringView &view)
ConstIterator & operator++()
std::reverse_iterator< ConstIterator > ConstReverseIterator
Definition: YiStringView.h:60
bool StartsWith(CYIStringView s, CaseMode caseSensitivity=CaseMode::CaseSensitive) const
bool ContainsNonASCII() const
bool operator<(CYIStringView lhs, CYIStringView rhs) noexcept
ConstIterator & operator--()
CYIStringView Right(size_t len) const
CYIStringView Left(size_t len) const
YI_CONSTEXPR bool IsEmpty() const
ptrdiff_t difference_type
Definition: YiStringView.h:76
ConstIterator Iterator
Definition: YiStringView.h:117
char32_t At(size_t pos) const
bool ToBool(bool *pError=nullptr) const
A lightweight wrapper around a sequence of Unicode characters.
Definition: YiStringView.h:57
std::unique_ptr< char16_t[]> ToUTF16(size_t *pElementsCount=nullptr) const