raw.odin 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package mem
  2. import "core:builtin"
  3. import "core:runtime"
  4. Raw_Any :: runtime.Raw_Any
  5. Raw_String :: runtime.Raw_String
  6. Raw_Cstring :: runtime.Raw_Cstring
  7. Raw_Slice :: runtime.Raw_Slice
  8. Raw_Dynamic_Array :: runtime.Raw_Dynamic_Array
  9. Raw_Map :: runtime.Raw_Map
  10. Raw_Soa_Pointer :: runtime.Raw_Soa_Pointer
  11. Raw_Complex64 :: struct {real, imag: f32}
  12. Raw_Complex128 :: struct {real, imag: f64}
  13. Raw_Quaternion128 :: struct {imag, jmag, kmag: f32, real: f32}
  14. Raw_Quaternion256 :: struct {imag, jmag, kmag: f64, real: f64}
  15. Raw_Quaternion128_Vector_Scalar :: struct {vector: [3]f32, scalar: f32}
  16. Raw_Quaternion256_Vector_Scalar :: struct {vector: [3]f64, scalar: f64}
  17. make_any :: proc "contextless" (data: rawptr, id: typeid) -> any {
  18. return transmute(any)Raw_Any{data, id}
  19. }
  20. raw_data :: builtin.raw_data
  21. Poly_Raw_Map_Entry :: struct($Key, $Value: typeid) {
  22. hash: uintptr,
  23. next: int,
  24. key: Key,
  25. value: Value,
  26. }
  27. Poly_Raw_Map :: struct($Key, $Value: typeid) {
  28. hashes: []int,
  29. entries: [dynamic]Poly_Raw_Map_Entry(Key, Value),
  30. }