You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 rivejä
881 B

  1. #pragma once
  2. #include "platform.hpp"
  3. #include <stdint.h>
  4. #include <string.h>
  5. typedef int8_t s8;
  6. typedef int16_t s16;
  7. typedef int32_t s32;
  8. typedef int64_t s64;
  9. typedef uint8_t u8;
  10. typedef uint16_t u16;
  11. typedef uint32_t u32;
  12. typedef uint64_t u64;
  13. typedef float f32;
  14. typedef long double f64;
  15. #ifdef UNICODE
  16. typedef wchar_t path_char;
  17. #else
  18. typedef char path_char;
  19. #endif
  20. struct String {
  21. u64 length;
  22. char* data;
  23. };
  24. inline auto heap_copy_c_string(const char* str) -> char* {
  25. #ifdef FTB_WINDOWS
  26. return _strdup(str);
  27. #else
  28. return strdup(str);
  29. #endif
  30. }
  31. inline auto make_heap_string(const char* str) -> String {
  32. String ret;
  33. ret.length = strlen(str);
  34. ret.data = heap_copy_c_string(str);
  35. return ret;
  36. }
  37. inline const String make_static_string(char* str) {
  38. String ret;
  39. ret.length = strlen(str);
  40. ret.data = str;
  41. return ret;
  42. }