Files
corelang/examples/push_struct.core
2026-03-20 08:35:18 +01:00

15 lines
406 B
Core

MA :: #import "Arena.core"
PushStruct :: (a: *MA.Arena, $K: Type, $T: Type): *T
size := sizeof(T)
result := MA.PushSize(a, size->U64)
return result->*T
main :: (argc: int, argv: **char): int
arena: MA.Arena
a: *int = PushStruct(&arena, int, int)
b: *F32 = PushStruct(&arena, int, F32)
padding := sizeof(int)
Assert(arena.len->int == (sizeof(int) + sizeof(F32) + padding))
return 0