#ifndef SOFA_UTIL_H #define SOFA_UTIL_H #include #include typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32; typedef uint64_t u64; typedef int8_t i8; typedef int16_t i16; typedef int32_t i32; typedef int64_t i64; typedef intptr_t isize; typedef size_t usize; typedef enum { false = 0, true } bool; typedef struct { i64 x; i64 y; } v2i; #define VI(x, y) (v2i){x, y} #define ERROR(msg) fprintf(stderr, "ERROR %s: %s\n", __FILE__, msg); #define WARN(msg) fprintf(stderr, "WARN %s: %s\n", __FILE__, msg); #define INFO(msg) fprintf(stderr, "INFO %s: %s\n", __FILE__, msg); #define TRACE(msg) fprintf(stderr, "TRACE %s: %s\n", __FILE__, msg); #endif