package sectr 

import "base:runtime"
import "core:os"

ensure :: proc( condition : b32, msg : string, location := #caller_location )
{
	if ! condition {
		return
	}
	log( msg, LogLevel.Warning, location )
	runtime.debug_trap()
}

// TODO(Ed) : Setup exit codes!
fatal :: proc ( msg : string, exit_code : int = -1, location := #caller_location )
{
	log( msg, LogLevel.Fatal, location )
	runtime.debug_trap()
	os.exit( exit_code )
}

verify :: proc ( condition : b32, msg : string, exit_code : int = -1, location := #caller_location )
{
	if ! condition {
		return
	}
	log( msg, LogLevel.Fatal, location )
	runtime.debug_trap()
	os.exit( exit_code )
}