25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

81 satır
1.6 KiB

  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 StringSlice {
  21. const char* data;
  22. u64 length;
  23. };
  24. struct String {
  25. char* data;
  26. u64 length;
  27. };
  28. inline auto heap_copy_c_string(const char* str) -> char* {
  29. #ifdef FTB_WINDOWS
  30. return _strdup(str);
  31. #else
  32. return strdup(str);
  33. #endif
  34. }
  35. inline auto make_heap_string(const char* str) -> String {
  36. String ret;
  37. ret.length = strlen(str);
  38. ret.data = heap_copy_c_string(str);
  39. return ret;
  40. }
  41. inline auto make_static_string(const char* str) -> const StringSlice {
  42. StringSlice ret;
  43. ret.length = strlen(str);
  44. ret.data = str;
  45. return ret;
  46. }
  47. auto inline string_equal(const char* input, const char* check) -> bool {
  48. return strcmp(input, check) == 0;
  49. }
  50. auto inline string_equal(StringSlice str, const char* check) -> bool {
  51. if (str.length != strlen(check))
  52. return false;
  53. return strncmp(str.data, check, str.length) == 0;
  54. }
  55. auto inline string_equal(const char* check, StringSlice str) -> bool {
  56. if (str.length != strlen(check))
  57. return false;
  58. return strncmp(str.data, check, str.length) == 0;
  59. }
  60. auto inline string_equal(StringSlice str1, StringSlice str2) -> bool {
  61. if (str1.length != str2.length)
  62. return false;
  63. return strncmp(str1.data, str2.data, str2.length) == 0;
  64. }