#pragma once // KPL specific types #include "system.h" typedef enum : int32_t { KPL_EXIT_CODE_SUCCESS = 0, KPL_EXIT_CODE_ERROR = 1, KPL_EXIT_CODE_HELP = 2 } kpl_exit_code; typedef uint8_t kpl_utf8[4]; typedef union { uint8_t u8; int8_t i8; uint16_t u16; int16_t i16; uint32_t u32; int32_t i32; uint64_t u64; int64_t i64; kpl_utf8 utf8; float f32; double f64; void *ptr; } kpl_value; typedef struct { kpl_value value; int64_t tag; } kpl_result;