//////////////////////////////////////////////////////////// //~ Command line types Struct(CommandlineArg) { b32 exists; String name; String value; }; //////////////////////////////////////////////////////////// //~ Lookup types Struct(CommandlineArgNode) { CommandlineArgNode *next; u64 hash; CommandlineArg arg; }; //////////////////////////////////////////////////////////// //~ State types #define CommandlineArgBinsCount 1024 Struct(SharedCmdlineState) { String *positional_args; u64 positional_args_count; CommandlineArgNode *arg_bins[CommandlineArgBinsCount]; } extern shared_cmdline_state; //////////////////////////////////////////////////////////// //~ Initialization void InitCmdline(void); //////////////////////////////////////////////////////////// //~ Command line operations String StringFromCommandlineIdx(i32 idx); CommandlineArg CommandlineArgFromName(String name);