#ifndef COMMAND_H #define COMMAND_H #include "string.h" #include "common.h" typedef struct Arena Arena; typedef struct Discovery Discovery; typedef struct Configuration Configuration; struct CommandOptions { Arena* a; StringPool* sp; BuildProfile bp; Configuration* c; StringView app; StringView* files; }; struct ProfileResult { size_t compiler_flags_count; StringView* compiler_flags_buf; }; struct Command { Arena* a; StringView app; const char** args; }; typedef struct Argument Argument; typedef struct Command Command; typedef struct CommandOptions CommandOptions; typedef struct ProfileResult ProfileResult; Command command_create_f_to_o(CommandOptions* co); ProfileResult command_get_profile(CommandOptions* co); int command_run(Command* cmd); #endif