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