PushStruct lambda working yay
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
MA :: #import "Arena.core"
|
MA :: #import "Arena.core"
|
||||||
|
|
||||||
PushStruct :: (a: *MA.Arena, $T: Type): *T
|
PushStruct :: (a: *MA.Arena, $T: Type): *T
|
||||||
v: T
|
size := SizeOf(T)
|
||||||
size := SizeOf(v)
|
|
||||||
result := MA.PushSize(a, size->U64)
|
result := MA.PushSize(a, size->U64)
|
||||||
return result->*T
|
return result->*T
|
||||||
|
|
||||||
main :: (argc: int, argv: **char): int
|
main :: (argc: int, argv: **char): int
|
||||||
arena: MA.Arena
|
arena: MA.Arena
|
||||||
a: *int = PushStruct(&arena, int)
|
a: *int = PushStruct(&arena, int)
|
||||||
Assert(arena.len == SizeOf(int))
|
b: *F32 = PushStruct(&arena, F32)
|
||||||
|
padding := SizeOf(int)
|
||||||
|
Assert(arena.len->S64 == (SizeOf(int) + SizeOf(F32) + padding))
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
Reference in New Issue
Block a user