Riyyi
70ccdee8c2
Util: Add class System for executing OS shell commands
3 years ago
Riyyi
3efe74582f
Util: Add ArgParser missing argument error message
3 years ago
Riyyi
bb29919f02
Util: Simplify the logic of the long option parsing function
3 years ago
Riyyi
2ac6d24520
Util: Add type error messages to ArgParser option arguments
3 years ago
Riyyi
648c0f8c85
Util: Rename ArgParser error types
3 years ago
Riyyi
35e2c2de48
Util: Rename printOptionError -> printError
3 years ago
Riyyi
ffcde408e1
Util: Add invalid argument type error message to ArgParser
3 years ago
Riyyi
9c918c6555
Util: Add ArgParser unhandled argument error type and messages
3 years ago
Riyyi
a5d5d2ea6d
Util: Fix nullptr derefencing
...
In order to compare strings, the STL has to dereference the data
pointer. So check if its not a nullptr first.
3 years ago
Riyyi
7759821b13
Util: Fix string_view substring selection
...
Unlike std::basic_string::data() and string literals, data() may return
a pointer to a buffer that is not null-terminated. Therefore it is
typically a mistake to pass data() to a routine that takes just a const
CharT* and expects a null-terminated string.
The bug was calling string_view .data() after calling substr() that ends
before the null terminator, as it will just return the entire
string_view.
3 years ago
Riyyi
a217475d42
Util: Avoid assigning variable by passing to the initialization list
...
When an object of a class is created, the constructors of all member
variables are called consecutively in the order the variables are
declared, even if you don't explicitly write them to the initialization
list.
3 years ago
Riyyi
b6bfcbdc33
Util: Support for optional arguments in ArgParser
3 years ago
Riyyi
ca95ef1cf1
Util: Add simple validation to ArgParser number conversions
3 years ago
Riyyi
6efa314c38
Util: Move ArgParser private function implementations to the bottom
3 years ago
Riyyi
4e30b58305
Util: Switch ArgParser option/argument creation to list initialization
3 years ago
Riyyi
0fffa86ba0
Util: Deduplicate ArgParser accept value lambdas
3 years ago
Riyyi
9cecb8602f
Util: Add more ArgParser argument types
3 years ago
Riyyi
67fd31a746
Util: Add argument parsing to ArgParser
3 years ago
Riyyi
dc4fcc10ce
Util+Test: Implement exit on first error in main ArgParser loop
3 years ago
Riyyi
f021cf0e15
Util: Fix parsing for exit on first error setting
3 years ago
Riyyi
3f1ced53f6
Util: Rename variable to plural
3 years ago
Riyyi
f92b75a463
Util+Test: Add setting to stop parsing on first non-option
3 years ago
Riyyi
a70d67f8fa
Util: Don't try to parse a '--' parameter
3 years ago
Riyyi
072d805344
Util+Test: Add more ArgParser option types
3 years ago
Riyyi
98dec3e51a
Util: Handle accepting values return state in ArgParser
3 years ago
Riyyi
1366bf14b1
Util+Test: Change size_type to size_t
...
The specialized size_type type is just an alias for size_t.
3 years ago
Riyyi
68cdd625b4
Util+Test: Add parsing of multi-value options
3 years ago
Riyyi
a5c422a2cc
Util+Test: Add support for '--' to enable non-option mode
3 years ago
Riyyi
04482fb10d
Util: Return the result of the option parsing
3 years ago
Riyyi
2b2bd7ff78
Util: Add fancyprint function
3 years ago
Riyyi
f6ce86dba7
Util: Fix typo in timer
3 years ago
Riyyi
86aeae3c8e
Util: Add timer class
3 years ago
Riyyi
eaec2c0e7a
Util: Add singleton class
3 years ago
Riyyi
8a1fb689bd
Initial commit
3 years ago