String.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <stdint.h>
  3. #include "il2cpp-config.h"
  4. #include "utils/StringView.h"
  5. struct Il2CppString;
  6. namespace il2cpp
  7. {
  8. namespace vm
  9. {
  10. class LIBIL2CPP_CODEGEN_API String
  11. {
  12. public:
  13. //exported
  14. static Il2CppString* Empty();
  15. static int32_t GetLength(Il2CppString* str);
  16. static int32_t GetHash(Il2CppString* str);
  17. static Il2CppString* New(const char* str);
  18. static Il2CppString* NewWrapper(const char* str);
  19. static Il2CppString* NewLen(const char* str, uint32_t length);
  20. static Il2CppString* NewSize(int32_t len);
  21. static Il2CppString* NewUtf16(const Il2CppChar *text, int32_t len);
  22. static Il2CppString* NewUtf16(const utils::StringView<Il2CppChar>& text);
  23. public:
  24. static void InitializeEmptyString(Il2CppClass* stringClass);
  25. static void CleanupEmptyString();
  26. static Il2CppString* Intern(Il2CppString* str);
  27. static Il2CppString* IsInterned(Il2CppString* str);
  28. };
  29. } /* namespace vm */
  30. } /* namespace il2cpp */