Files
corelang/examples/push_struct.core
Krzosa Karol b572f4ef7c Parsing union
2023-03-29 09:34:33 +02:00

24 lines
437 B
Core

MA :: #import "Arena.core"
/*
PushStruct :: (a: *MA.Arena, $Type): *Type
size := size_of(Type)
result := PushSize(a, size)
return result
*/
PushStruct :: (a: *MA.Arena, type: Type): *void
ti := GetTypeInfo(type)
result := MA.PushSize(a, ti.size->U64)
return result
U :: union
a: F64
b: F32
main :: (argc: int, argv: **char): int
arena: MA.Arena
a: *int = PushStruct(&arena, int)
Assert(arena.len == SizeOf(int))
return 0