Commit Graph

227 Commits

Author SHA1 Message Date
Martchus 69d4fa193f Apply clang-format 2017-11-18 00:27:25 +01:00
Martchus add8ddaeec Apply clang-format 2017-11-17 22:04:11 +01:00
Martchus f5a240649f Separate RapidJSON specific parts
So when extending this for further applications of
reflection, the JSON-specific parts can be made optional.
2017-11-17 22:04:01 +01:00
Martchus 8c3dd5535d Pass the include dir for c++utilities and RapidJSON to tests
So test cases do not fail if the header files for those
dependencies are installed in a custom location.
2017-11-17 22:01:18 +01:00
Martchus 227d3f3942 Allow passing target config to generator invocation
So the code generator 'sees' the source code in the same
way as the compiler does.
2017-11-17 21:42:49 +01:00
Martchus 19cab9c791 Bundle c++utilities correctly
* Use the c++utilities source directory for includes rather
  than the locations where headers are goint to be installed
* Call find_package for c++utilities only once
2017-11-17 21:21:34 +01:00
Martchus d5144d8e75 Restore GCC compatibility 2017-11-16 01:56:04 +01:00
Martchus a159bdbdb0 Propagate binary and source dir to parent scope 2017-11-16 01:56:04 +01:00
Martchus a7f587cb84 Support std::map and std::unordered_map 2017-11-13 20:16:43 +01:00
Martchus 19590d30a4 Explicitely ignore static members (for now) 2017-11-13 16:41:47 +01:00
Martchus c71a9baa54 Test std::unique_ptr in generated code 2017-11-13 16:18:32 +01:00
Martchus 683d87c366 Allow disabling generator 2017-11-13 08:51:33 +01:00
Martchus f24390a00b Support smart pointer 2017-11-12 23:18:01 +01:00
Martchus ce89e3d878 Only include required Boost.Hana headers 2017-11-12 20:13:17 +01:00
Martchus 61a343bda1 Refactor redundant type checks 2017-11-12 20:07:43 +01:00
Martchus e9324f0ec3 Fix incomplete use of AdaptedJsonSerializable and handling tuple 2017-11-12 00:44:47 +01:00
Martchus 4655387c4d Clean code for JSON generator 2017-11-11 23:29:17 +01:00
Martchus 9fb26e69e9 Remove leftovers from debugging 2017-11-11 22:54:00 +01:00
Martchus ee0ca561c0 Allow exporting generated functions and don't inline by default 2017-11-11 22:53:40 +01:00
Martchus 9f0f208f28 Trun only errors into warnings which are actually required 2017-11-11 00:26:23 +01:00
Martchus 0d74d915f8 Allow optionally (de)serializing private members 2017-11-09 01:11:00 +01:00
Martchus e29dcce40f Only consider public members
Otherwise the compiler would complain about accessibility
anyways.
2017-11-09 00:07:40 +01:00
Martchus 13dfac3991 Update TODOs 2017-11-07 00:28:41 +01:00
Martchus 062f8c0d27 Allow enabling (de)serialization for 3rd party structs 2017-11-06 23:27:27 +01:00
Martchus eac2d20638 Allow specifying Clang options and JSON classes in CMake macro 2017-11-06 20:10:06 +01:00
Martchus c4b4429880 Test --json-classes argument 2017-11-06 20:04:42 +01:00
Martchus e12e33a28f Remove obsolete comment 2017-11-06 19:11:02 +01:00
Martchus a7feb57f22 Allow specifying additional classes for JSON serialization 2017-11-06 15:31:21 +01:00
Martchus d039daf938 Extend TODOs 2017-11-06 00:05:56 +01:00
Martchus 95719ac8a4 Test mixing custom (de)serialization with generated code 2017-11-04 15:17:06 +01:00
Martchus 516f80b325 Use "is_base_of"-trait also for pushing objects 2017-11-04 15:16:05 +01:00
Martchus f212fc8de7 Prevent overflow on size type conversion 2017-11-04 15:15:12 +01:00
Martchus a4fac7c515 Further simplify JSON reflector 2017-11-04 02:33:34 +01:00
Martchus 4dbb5a3982 Prevent code duplication for iterator variants of pull() 2017-11-03 23:00:15 +01:00
Martchus 423d9ee393 Move all helper functions inside JsonReflector namespace 2017-11-03 22:42:18 +01:00
Martchus 8b61fcc29a Make location of code generator customizable 2017-11-03 22:41:51 +01:00
Martchus 76a8f649bc Add example for custom (de)serialization 2017-11-03 17:45:16 +01:00
Martchus daf1a8602c Rename Reflector -> JsonReflector
So helper methods for other applications of reflections
would go into a separate namespace to prevent conflicts.
2017-11-02 23:35:56 +01:00
Martchus fdadb17c04 Call tests for JSON generator JsonGeneratorTests 2017-11-02 23:09:39 +01:00
Martchus ccd70d0bcf Extend documentation 2017-11-02 15:15:29 +01:00
Martchus c0e6570848 Document supported datatypes 2017-10-29 23:46:11 +01:00
Martchus 407de04d91 Allow deserializing tuples 2017-10-29 22:53:02 +01:00
Martchus d849144504 Allow serializing tuples 2017-10-29 22:14:04 +01:00
Martchus 5e95127185 Exclude tuple from the types considered 'user defined' 2017-10-29 21:41:18 +01:00
Martchus ae3d8030b6 Allow serializing enums
Note that deserializing is not so simple because
we would need to check whether the integer actually
is an item of the expected enumeration type.
2017-10-29 21:31:23 +01:00
Martchus e1dca1d1a2 Improve README.md 2017-10-28 22:52:31 +02:00
Martchus 0520341411 Fix passing temporary to Reflector::push() 2017-10-28 18:29:15 +02:00
Martchus 104e362762 Imporve documentation and build script 2017-10-28 18:24:12 +02:00
Martchus a768408493 Refactor JsonSerializationCodeGenerator
* JSONSerializationCodeGenerator -> JsonSerializationCodeGenerator
* Move to separate file
2017-10-28 16:31:07 +02:00
Martchus c94c896f6c Refactor RapidJSON wrapper
* Move all JSON related files into own directory
* Move helper for error handling in own header
* Remove some leftovers from debugging
* Rename classes, use Json instead of JSON
2017-10-28 16:23:39 +02:00