Declarations
Public Only
namespace md
struct CleanupEntry {
var instance_ptr : *void
var cleanup_fn : func(*void) : void
}
struct Arena {
var blocks : vector<*void>
var cleanup_fns : vector<CleanupEntry>
var current_ptr : *u8
var end_ptr : *u8
}
func make() : Arena
func allocate_block(self : &Arena, min_size : size_t) : void
func allocate_size(self : &Arena, size : size_t, align : size_t) : *void
func store_cleanup(self : &Arena, obj : *void, cleanup_fn : func(*void) : void) : void
func allocate_with_cleanup(self : &Arena, obj_size : size_t, alignment : size_t, cleanup_fn : func(*void) : void) : *void
func deinit(self : &Arena) : void
func delete(self : &Arena) : void
func allocate<T>(builder : &Arena) : *T