Commit Graph
100 Commits
Author SHA1 Message Date
Riyyi 6f0e3d6063 Util: Add Container parser checks 2022-08-09 11:11:19 +02:00
Riyyi 3e2819cf93 Util: Use char literals instead of numbers in enums 2022-08-09 10:56:48 +02:00
Riyyi 5e6ec1eff3 Test: Make formatting tests more complete 2022-08-08 21:45:55 +02:00
Riyyi 14e57acfd8 Util: Add format specifier logic to container types 2022-08-08 21:44:24 +02:00
Riyyi 5cf8d18742 Util: Add container type to Parser 2022-08-08 21:42:50 +02:00
Riyyi 086da50a57 Util: Fix Builder::putU64() when printing unaligned zero-padded hexes 2022-08-08 21:19:47 +02:00
Riyyi 36a18f65c1 Util: Add default formatting type to floating points checks 2022-08-06 19:53:45 +02:00
Riyyi ea853c1ace Util: Fix alternative form for octal types 2022-08-06 16:45:36 +02:00
Riyyi 448ad42005 Util: Add integral formatting to char and bool types 2022-08-06 00:39:03 +02:00
Riyyi 80c37496e8 Util: Implement specifier option checks 2022-08-05 23:38:08 +02:00
Riyyi a75bb863ff Util: Fix brace checks in Parser 2022-08-05 22:01:54 +02:00
Riyyi dc8d2a49cd Util: Call integral formatter from pointer type 2022-08-05 21:59:40 +02:00
Riyyi 8b4a748c9d Util: Add specifier options checks for pointer types 2022-08-05 20:27:49 +02:00
Riyyi 175251496f Util: Use putU64 when formatting pointer types 2022-08-05 02:08:40 +02:00
Riyyi 1fda63ae78 Util: Use C++20 designated initializer lists on structs 2022-08-05 00:48:21 +02:00
Riyyi 6c6ddf936a Util: Add alternative form specifier option to integral types 2022-08-05 00:13:09 +02:00
Riyyi bd8367db0e Util: Add newlines to long parameter list 2022-08-05 00:01:33 +02:00
Riyyi b07b9d92d4 Util: Add char to integral presentation types 2022-08-04 23:44:55 +02:00
Riyyi 7a98f8e79f Util: Add integral types and capitalization specifier options 2022-08-04 22:52:06 +02:00
Riyyi 25287bc370 Util: Add zero padding specifier to putU64() 2022-08-04 19:31:30 +02:00
Riyyi 5eb5e2d51e Util: Reorder specifier arguments to match parsing order 2022-08-04 19:30:44 +02:00
Riyyi c40650ab67 Util: Implement some integral specifiers 2022-08-04 17:06:44 +02:00
Riyyi 9758c3e425 Util: Use C++20 concepts for integral and floating-point types 2022-08-04 16:05:49 +02:00
Riyyi 7cff165f08 Util: Add specifier type checking 2022-08-04 01:35:10 +02:00
Riyyi 7825e87c19 Util: Rename Parser SpecifierType -> ParameterType 2022-08-04 01:25:23 +02:00
Riyyi 04250a8605 Util: Add default alignment to string types 2022-08-03 16:05:01 +02:00
Riyyi 5e419f501d Util: Change nullptr stringification 2022-08-03 15:49:43 +02:00
Riyyi 1b7a736be2 Util: Pass string width,align,fill option to Format::Builder 2022-08-03 14:05:34 +02:00
Riyyi 6209251ca6 Util: Pass floating-point precision to Format::Builder 2022-08-03 12:53:28 +02:00
Riyyi a118f3da3c Util: Add format string parsing 2022-08-03 12:51:33 +02:00
Riyyi 8049477795 Util: Update Format::Builder floating-point precision 2022-08-03 12:06:35 +02:00
Riyyi f08225136f Util: Fix stringToNumber in Format::Parser 2022-08-03 11:47:54 +02:00
Riyyi bbb8691c90 Util: Fix parsing index in automatic mode 2022-08-03 11:00:58 +02:00
Riyyi da0954ffcc Util: Add map formatting to new struct Formatter 2022-08-03 01:51:21 +02:00
Riyyi f3344a0fb9 Util: Switch from format() to struct Formatter 2022-08-03 01:02:33 +02:00
Riyyi eb25e98f79 Util: Rename logging type enum, Type -> LogType 2022-08-03 00:27:37 +02:00
Riyyi 5b85feec19 Util: Forward declare where possible in format.h 2022-08-03 00:27:27 +02:00
Riyyi c4e7fa3375 Util: Improve check on formatting recursion for asserts 2022-08-01 00:11:11 +02:00
Riyyi b574a79dfe Manager+Util: Change enum class type from int to uint8_t (4 -> 1 byte) 2022-07-28 10:57:41 +02:00
Riyyi f58113e257 Util: Add ability to print log messages 2022-07-28 01:41:00 +02:00
Riyyi c90369181f Util: Split formatting print into print and colored print 2022-07-28 01:32:27 +02:00
Riyyi 187e082018 Util: Rename FormatAngleBracket -> FormatOperatorStyle 2022-07-28 01:19:09 +02:00
Riyyi 3837ebef06 Util: Print to provided file stream 2022-07-27 01:17:44 +02:00
Riyyi 94906028fc Util: Remove template non-type parameter default arg, it cant be empty 2022-07-27 01:06:29 +02:00
Riyyi c59bfc20f7 Manager+Util: Switch to custom assert macro 2022-07-27 00:10:11 +02:00
Riyyi 04f5f42bb5 Util: Add extra safety check for custom asserts 2022-07-26 23:47:47 +02:00
Riyyi 33df4bef39 Util+Test: Separate formatting and printing into different files 2022-07-26 23:25:20 +02:00
Riyyi e8c4b6eb11 Util: Rename formatting danger -> critical 2022-07-26 16:27:09 +02:00
Riyyi 15a524adbb Util: Reset IOstreams flags after usage 2022-07-26 14:06:29 +02:00
Riyyi c3776fb967 Util: Store formatting parameters in a non-variadic container 2022-07-26 12:57:55 +02:00
Riyyi a55bb27641 Manager+Doc: Update config file 2022-07-25 17:35:53 +02:00
Riyyi 0e93009e4b Util: Update JSON user-defined literal type name 2022-07-25 17:19:56 +02:00
Riyyi f536aefc99 Util: Add missing include 2022-07-22 22:54:10 +02:00
Riyyi 9390f4fd31 Util: Add custom assert 2022-07-22 22:44:47 +02:00
Riyyi 7d2c2c52e2 Util: Add compiler detection using preprocessor directives 2022-07-22 22:27:22 +02:00
Riyyi bcea91a2c0 Util: Add newline to string line formatting function 2022-07-22 21:51:03 +02:00
Riyyi fc163f7f06 Meta: Bump C++ version from 17 to 20 2022-07-22 21:26:33 +02:00
Riyyi 9857f11798 Util: Remove comparison of unsigned expression, it is always true 2022-07-22 21:26:26 +02:00
Riyyi da5dce22e6 Meta: Update .clang-format to indent preprocessor directives 2022-07-22 15:32:09 +02:00
Riyyi 8345f67c50 Everywhere: Switch to #pragma once, add missing copyright headers 2022-07-22 13:04:04 +02:00
Riyyi bba2b30cbb Util: Add helper Util::Json to Util::JSON::Value 2022-07-22 12:42:33 +02:00
Riyyi deb9f29b47 Util+Test: Change namespace of JSON classes: Json -> Util::JSON 2022-07-22 12:41:27 +02:00
Riyyi be74d89fea Test: Add string formatting tests 2022-07-22 12:06:42 +02:00
Riyyi 75034a2c5a Util: Implement Json::Value type customization for print formatting 2022-07-22 02:13:12 +02:00
Riyyi 835481f4a5 Util: Add formatting and type printing capability
Extending the type compatibility is done with an easy to use API.
2022-07-22 01:59:19 +02:00
Riyyi 9b3489676e Util: Add two functions to GenericLexer
- tellRemaining
- consumeSpecific
2022-07-22 01:48:14 +02:00
Riyyi dd209a2609 Util: Move json/conversion.h -> meta/odr.h 2022-07-21 01:50:15 +02:00
Riyyi 2408be335d Util: Rename two functions to be more in line with GenericLexer 2022-07-20 23:34:31 +02:00
Riyyi 42143fed71 Util: Rename Lexer/Parser get functions to consume 2022-07-20 22:57:35 +02:00
Riyyi 8dd3f11d7b Util: Run clang-format on Json::Lexer 2022-07-20 22:49:41 +02:00
Riyyi e3041bfdc7 Util: Implement GenericLexer in Json::Lexer 2022-07-20 22:49:41 +02:00
Riyyi 4ce026ec78 Util: Add GenericLexer class 2022-07-20 22:49:41 +02:00
Riyyi 4e6c5ca341 Util: Change Job m_input string -> string_view 2022-07-20 21:32:17 +02:00
Riyyi b4100113fe Util: Add missing include 2022-07-20 21:30:15 +02:00
Riyyi 11fdc64447 Util: Add pause() and resume() to Timer 2022-07-18 17:37:04 +02:00
Riyyi a92ac29d19 Util: Add parse(std::ifstream) function 2022-07-18 16:03:11 +02:00
Riyyi 07df4054da Util: Massively speedup serialization, remove all ifs from loop 2022-07-18 15:53:42 +02:00
Riyyi 2915c1c1ec Util: Reorder Array/Object functions, add empty() 2022-07-18 15:10:11 +02:00
Riyyi 161be80fd6 Util: Make second to last element detection more compatible
std::prev doesn't work on std::unordered_map, this patch makes it work.
2022-07-18 12:50:09 +02:00
Riyyi c3f5df7a29 Util: Optimize away returning strings 2022-07-18 12:42:08 +02:00
Riyyi 93eb2f4f6a Util: Optimize Value member away 2022-07-18 12:18:56 +02:00
Riyyi 99759b82b7 Util: Optimize more string creating and string.find() away 2022-07-17 22:03:48 +02:00
Riyyi 827286a0b2 Util: Optimize string creation and string.find() away 2022-07-17 21:16:53 +02:00
Riyyi 9f31a04909 Util: Optimize Lexer::getNumberOrLiteral() to one string append 2022-07-17 20:40:05 +02:00
Riyyi 3e69abdfa0 Util: Implement copy-and-swap idiom and the Rule of Five in Value 2022-07-16 00:51:32 +02:00
Riyyi a1bb1b93c9 Test: Hide JSON stderr output 2022-07-15 13:10:06 +02:00
Riyyi 7c1f95e850 Util: Prevent unnecessary copy assignment calls 2022-07-15 12:47:08 +02:00
Riyyi 0841e49b46 Util: Add user-defined string literal for Json::Value 2022-07-14 20:39:37 +02:00
Riyyi 3ea87a1d28 Util: Print Json error messages to stderr 2022-07-14 15:36:53 +02:00
Riyyi 4ea1242247 Manager: Switch to own JSON parser, remove nlohmann/json 2022-07-12 21:24:58 +02:00
Riyyi d6cd90ae4a Util: Rename Json::Value m_value union variables 2022-07-12 12:36:03 +02:00
Riyyi b76223693b Util: Add Parser and Serializer to Value friends 2022-07-12 12:07:49 +02:00
Riyyi ad137576a8 Util: Make character breaks in Lexer more clear syntactically 2022-07-12 11:17:34 +02:00
Riyyi 5835c63bda Util: Rename Array m_values -> m_elements 2022-07-12 11:06:46 +02:00
Riyyi aa283f8c75 Test: Add Json test cases 2022-07-12 02:28:22 +02:00
Riyyi 39329caf22 Util: Fix empty Object {} parsing 2022-07-12 02:00:49 +02:00
Riyyi a33f35faab Util: Rearrange Parser functions 2022-07-12 01:54:15 +02:00
Riyyi aa5b5117ad Util: Change seekForward() to go 1 step after the match 2022-07-12 01:54:15 +02:00
Riyyi 51e788a5ad Util: Change Token element access to use at() 2022-07-12 01:54:15 +02:00
Riyyi c7e4eb2575 Util: Add EOF detection in Parser getArray() getObject() 2022-07-12 01:54:15 +02:00