ezEngine  Milestone 7
StringView.h
1 #pragma once
2 
3 #include <ThirdParty/utf8/utf8.h>
4 #include <Foundation/Strings/StringUtils.h>
5 #include <Foundation/Strings/Implementation/StringBase.h>
6 
16 class EZ_FOUNDATION_DLL ezStringView : public ezStringBase<ezStringView>
17 {
18 public:
20  ezStringView();
21 
23  ezStringView(const char* pStart); // [tested]
24 
26  ezStringView(const char* pStart, const char* pEnd); // [tested]
27 
29  void operator++(); // [tested]
30 
32  void operator+=(ezUInt32 d); // [tested]
33 
35  ezUInt32 GetCharacter() const; // [tested]
36 
38  bool IsValid() const; // [tested]
39 
40  // no implicit conversion to ezStringParamImpl or const char* because the string view may not be zero terminated
41  //operator ezStringParamImpl () const;
42  //operator const char* () const { return GetData(); }
43 
45  const char* GetData() const { return m_pStart; } // [tested]
46 
50  ezUInt32 GetElementCount() const { return (ezUInt32) (m_pEnd - m_pStart); } // [tested]
51 
55  void SetStartPosition(const char* szCurPos); // [tested]
56 
58  const char* GetStartPosition() const { return m_pStart; } // [tested]
59 
64  const char* GetEndPosition() const { return m_pEnd; } // [tested]
65 
67 
69  bool IsEqual(const ezStringView& sOther) const;
70 
72 
74  bool IsEqual_NoCase(const ezStringView& sOther) const;
75 
83  void Shrink(ezUInt32 uiShrinkCharsFront, ezUInt32 uiShrinkCharsBack); // [tested]
84 
86  void Trim(const char* szTrimChars); // [tested]
87 
89  void Trim(const char* szTrimCharsStart, const char* szTrimCharsEnd); // [tested]
90 
91 private:
92  const char* m_pStart;
93  const char* m_pEnd;
94 };
95 
96 
97 
98 #include <Foundation/Strings/Implementation/StringView_inl.h>
99