#pragma once // All headers in one file for including #include "kpl/macro.h" #include "kpl/io.h" #include "kpl/thread.h" typedef enum : uint32_t { KPL_CONFIG_FLAG_EVAL = 1 << 0, KPL_CONFIG_FLAG_REPL = 1 << 1 } kpl_config_flags; typedef struct { uint32_t flags; int32_t argc, main_module_arg_index; const char **argv, *module_extension; kpl_config_io io; kpl_config_thread thread; } kpl_config; void kpl_config_init(kpl_config *config); bool kpl_config_valid_module_exension(kpl_config *config, const char *module_name); int32_t kpl_config_parse_args(kpl_config *config, const int32_t argc, const char *argv[]); typedef struct { kpl_config config; } kpl_env;