32 lines
650 B
Odin
32 lines
650 B
Odin
|
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 )
|
||
|
}
|