Commit Graph
100 Commits
Author SHA1 Message Date
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
Riyyi 55ed70353a Util: Fix trailing comma in Object error message 2022-07-11 19:33:54 +02:00
Riyyi abb075939f Util: Properly detect empty Tokens and multiple root elements 2022-07-11 19:08:30 +02:00
Riyyi a3ab6aecfa Util: Fix comma placement in error message 2022-07-11 00:49:27 +02:00
Riyyi 097be4c012 Util: Fix Serializer trailing commas in Object dumping
The .end() returns an iterator one past the last pair, so it would
always add a comma after the last member.
2022-07-10 21:42:48 +02:00
Riyyi ea7049306e Util: Fix empty Array parsing 2022-07-10 16:13:44 +02:00
Riyyi fc3dc936fa Util: Fix line count detection for non-trailing newline in Job 2022-07-10 15:58:50 +02:00
Riyyi f2ea84be0f Util: Fix to break at the end of the file in Lexer 2022-07-10 15:49:34 +02:00
Riyyi 003db7332d Util: Add fromJson() functions for Object Value types 2022-07-10 00:56:39 +02:00
Riyyi 8797f695e0 Util: Fix type check 2022-07-10 00:41:28 +02:00
Riyyi 74dd24a516 Util: Add flexible constructor toJson() to Json::Value 2022-07-10 00:33:33 +02:00
Riyyi 5c95288874 Util: Move staticConst<T> to separate header 2022-07-10 00:30:31 +02:00
Riyyi 0c972f420c Util: Add get<T>() functionality with customization points to Value 2022-07-08 14:23:38 +02:00
Riyyi c5bbd7befd Util: Add exists() to Json::Value 2022-07-08 14:11:03 +02:00
Riyyi a209452a68 Util: Add Json::Value at() functions 2022-07-08 13:55:40 +02:00
Riyyi 4487c800df Util: Change Array constructor
std::vector supports both vector and initializer_list for construction.
2022-07-08 13:31:01 +02:00
Riyyi d9cfd3f7c1 Util: Forward declare Json::Value in Array and Object class 2022-07-08 13:29:23 +02:00
Riyyi 0465d5802a Util: Add size() getter to Json::Value 2022-07-07 09:47:34 +02:00
Riyyi 66774364fd Util: Forward declare Value in the Parser class 2022-07-06 10:51:27 +02:00
Riyyi 3078f62162 Util: Remove unneeded std::prev() use 2022-07-06 10:50:23 +02:00