Martchus
30735ba187
Fix warnings
2021-03-20 21:25:56 +01:00
Martchus
5110cff5eb
Fix documentation for std::string_view's push/toJsonDocument function
2021-01-15 17:48:46 +01:00
Martchus
1e95c3d1ca
Don't use StringRef with RapidJSON's SetString and allocator
...
There is no overload taking a RAPIDJSON_NAMESPACE::StringRef and an
allocator. So the StringRef will be implicitly converted back to a plain
CharType pointer causing an additional length calculation.
2020-06-29 20:26:19 +02:00
Martchus
c33e1687cb
Support serializing std::string_view
2020-06-26 22:08:05 +02:00
Martchus
48639b42b2
Support serialization of std::pair
2019-12-27 01:43:28 +01:00
Martchus
450588af89
Support multimap and unordered_multimap
...
The previously (undocumented) implementation used non-unique
keys in JSON objects. This is not strictly forbidden by the
RFC but not recommended. Multiple values are now stored within
an array instead.
2019-12-27 01:40:34 +01:00
Martchus
e29db0fa87
Prevent warnings about unused lambda captures
2019-11-03 22:37:19 +01:00
Martchus
c3dc381425
Support `std::variant`
2019-11-03 22:02:56 +01:00
Martchus
d8e626d259
Fix toJsonDocument() for maps
2019-10-05 01:05:48 +02:00
Martchus
dd174920fe
Adapt to c++utilities v5
2019-05-04 16:09:58 +02:00
Martchus
974c0b0396
Allow to obtain only the JSON document
...
So the final serialization can be customized
2018-11-11 22:55:59 +01:00
Martchus
d64174c000
Add experimental support for multimap
...
Makes sense for binary (de)serialization, not sure about
JSON (de)serialization
2018-11-01 04:54:46 +00:00
Martchus
9dc7bd371c
Apply clang-format
2018-06-23 14:35:53 +02:00
Martchus
8628427e6d
Fix usage of enable_if with GCC 8
...
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.
Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:48:37 +02:00
Martchus
03e3a4bc67
Support std::(unordered_)?(multi)?set
2018-02-26 22:39:09 +01:00
Martchus
ca2a6acb2a
Add dummy for pulling C-style string
...
So at least everything can compile and the type-check
is done.
2017-12-24 02:13:16 +01:00
Martchus
272ec99bb0
Allow parsing any number as any kind of integral/floating point
...
Makes sense because JSON does not distinguish different kinds of
numbers anyways
2017-12-24 02:12:01 +01:00
Martchus
0bb06d5190
Ensure all pull helper are declared prior to the call site
2017-12-24 00:57:08 +01:00
Martchus
ec66f14e4c
Just use IsNumber() to check for numbers
...
Otherwise deserializing doubles does not work
when there's no explicit decimal point in the
JSON file.
2017-12-22 20:44:04 +01:00
Martchus
489d4c71c0
Fix typo
2017-12-22 20:31:48 +01:00
Martchus
29b39bc7bc
Use uint64/int64 to serialize enums
...
Otherwise, enums using char as underlying types
can not not be serialized.
2017-12-22 20:30:55 +01:00
Martchus
9a2c2cfef6
Deserialize enums as well
2017-12-22 20:30:01 +01:00
Martchus
86a577748e
Allow direct serialization of iteratables
2017-11-18 00:28:24 +01:00
Martchus
add8ddaeec
Apply clang-format
2017-11-17 22:04:11 +01:00
Martchus
d5144d8e75
Restore GCC compatibility
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
f24390a00b
Support smart pointer
2017-11-12 23:18:01 +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
0d74d915f8
Allow optionally (de)serializing private members
2017-11-09 01:11:00 +01:00
Martchus
062f8c0d27
Allow enabling (de)serialization for 3rd party structs
2017-11-06 23:27:27 +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
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
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
104e362762
Imporve documentation and build script
2017-10-28 18:24:12 +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