/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: CmdLine.hpp Date: 2022-1-31 Author: Reece Note: Even kernels have a commandline so why not? ***/ #pragma once namespace Aurora::CmdLine { /** * @brief Returns a UTF-8 string array of argv[1, ...] * @return */ AUKN_SYM const AuList &GetCommandLineArguments(); /** * @brief Performs a check on whether the exact key matches an argument * @param key * @return */ AUKN_SYM bool HasFlag(const AuString &key); /** * @brief Performs a check on whether such string came before an equals sign * @param key * @return */ AUKN_SYM bool HasValue(const AuString &key); /** * @brief Returns part after key= or defaultDefault * @param key * @param defaultValue * @return */ AUKN_SYM const AuString &GetValue(const AuString &key, const AuString &defaultValue); /** * @brief Returns part after key= or an empty string * @param key * @return */ AUKN_SYM const AuString &GetValue(const AuString &key); /** * @brief Returns a constant array of flag keys * @return */ AUKN_SYM const AuList &GetFlags(); /** * @brief Returns a constant array of value keys * @return */ AUKN_SYM const AuList &GetValues(); }