MA :: #import "Arena.core" /* PushStruct :: (a: *MA.Arena, $Type): *Type size := size_of(Type) result := PushSize(a, size) return result */ Color :: struct ;; r: F32; g: F32; b: F32; a: F32 AlmostLinearToSRGB :: (a: Color): Color;; return {asd(a.r), asd(a.g), asd(a.b), a.a} PushStruct :: (a: *MA.Arena, type: Type): *void ti := GetTypeInfo(type) result := MA.PushSize(a, ti.size->U64) return result main :: (argc: int, argv: **char): int arena: MA.Arena a: *int = PushStruct(&arena, int) Assert(arena.len == SizeOf(int)) return 0