123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- Any :: struct {
- data: rawptr,
- type_info: ^Type_Info,
- }
- String :: struct {
- data: ^byte,
- len: int,
- }
- Slice :: struct {
- data: rawptr,
- len: int,
- }
- Dynamic_Array :: struct {
- data: rawptr,
- len: int,
- cap: int,
- allocator: Allocator,
- }
- Map :: struct {
- hashes: [dynamic]int,
- entries: Dynamic_Array,
- }
- make_any :: inline proc(data: rawptr, type_info: ^Type_Info) -> any {
- return transmute(any)Any{data, type_info};
- }
- string_data :: inline proc(s: $T/string) -> ^byte {
- return (^String)(&s).data;
- }
- slice_data :: inline proc(a: $T/[]$E) -> ^E {
- return cast(^E)(^Slice)(&a).data;
- }
- dynamic_array_data :: inline proc(a: $T/[dynamic]$E) -> ^E {
- return cast(^E)(^Dynamic_Array)(&a).data;
- }
- data :: proc[string_data, slice_data, dynamic_array_data];
|