Martchus
2138491ee5
WIP
2021-07-10 23:28:02 +02:00
Martchus
db0082c325
WIP: Versioning
2021-07-04 21:52:01 +02:00
Martchus
2c6c63579b
WIP: Track version numbers
2021-07-03 22:26:50 +02:00
Martchus
2c243c3e41
WIP: Add marker macros for versioning
2021-07-03 22:26:50 +02:00
Martchus
5e72012ed5
Fix typos found via `codespell --skip .git -w`
2021-07-03 19:50:25 +02:00
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
5c49a438ad
Use header-only target of c++utilities
...
The current approach even distinguished between the build and install
interface. However, CPP_UTILITIES_INCLUDE_DIRS is not correctly evaluated
at the time PUBLIC_INCLUDE_DIRS is populated here because the variable
PACKAGE_PREFIX_DIR from the c++utilities config module still points to the
build directory at build time and using $<INSTALL_INTERFACE:…> can not help
with that.
2021-01-01 18:48:14 +01:00
Martchus
6252a7335a
Apply cmake-format and clang-format
2020-12-05 21:29:55 +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
c4f622df8d
Apply cmake-format
2020-03-08 13:52:01 +01:00
Martchus
442359f5bf
Add a function to format JSON deserialization errors
2020-02-29 22:35:02 +01:00
Martchus
86481fa459
Prevent CMake error when using CMake < 3.15.0
2020-02-18 19:40:48 +01:00
Martchus
cf41f4596a
Prevent passing "empty" flags to the code generator
...
Otherwise flags like "-D -I/foo" might be passed to clang which
will then complain that "-I/foo" is not a valid name for a macro.
2020-02-14 16:26:50 +01:00
Martchus
4b4d674f56
Allow adding clang options from dependencies
2020-01-31 20:43:01 +01:00
Martchus
891b96a38f
Fix build with custom target suffix
2020-01-31 19:49:18 +01:00
Martchus
c68d9ea384
Format CMake files with cmake-format 0.6.7
2020-01-26 20:42:03 +01:00
Martchus
ed3f89953f
Add missing symlinks to include directory
2020-01-26 20:38:47 +01:00
Martchus
6e4077eed2
Add JsonDeserializationErrors::ThrowOn::All
2020-01-26 20:38:24 +01:00
Martchus
2f1098ae3d
Make m_pointer of BinarySerializer and BinaryDeserializer private
2020-01-12 00:50:30 +01:00
Martchus
7482c64931
Support --binary-visibility in CMake function
2020-01-11 14:54:14 +01:00
Martchus
72a11c22b1
Apply cmake-format 0.6.5
2019-12-27 01:43:41 +01:00
Martchus
48639b42b2
Support serialization of std::pair
2019-12-27 01:43:28 +01:00
Martchus
717fb2f037
Polish lib/binary/reflector.h
2019-12-27 01:42:34 +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
1192c2d74a
Apply cmake-format 0.6.2
2019-12-06 16:51:47 +01:00
Martchus
456702e009
Remove unused std::monostate handling
...
This wasn't useful after all.
2019-11-03 22:38:27 +01:00
Martchus
3374e4ea6c
Fix passing C++ version in CMake macro
2019-11-03 22:37:55 +01:00
Martchus
e29db0fa87
Prevent warnings about unused lambda captures
2019-11-03 22:37:19 +01:00
Martchus
1024b8e391
Use override in test fixtures
2019-11-03 22:33:29 +01:00
Martchus
c3dc381425
Support `std::variant`
2019-11-03 22:02:56 +01:00
Martchus
dd652b4de7
Apply CMake format
2019-10-12 19:04:17 +02:00
Martchus
d8e626d259
Fix toJsonDocument() for maps
2019-10-05 01:05:48 +02:00
Martchus
f21f255e94
Don't use the same enum names twice
...
Prevents
```
[ 168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/jsonreflector.cpp:41:12: warning: type 'SomeEnumClass' violates the C++ One Definition Rule [-Wodr]
[ 168s] 41 | enum class SomeEnumClass {
[ 168s] | ^
[ 168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/binaryreflector.cpp:39:12: note: a type with different precision is defined in another translation unit
[ 168s] 39 | enum class SomeEnumClass : std::uint16_t {
[ 168s] | ^
```
observed in LTO-enabled builds
2019-08-09 17:48:08 +02:00
Martchus
a2b40753c3
Adapt adding include dirs to c++utilities 5
2019-06-20 22:53:03 +02:00
Martchus
6542eab80d
Adapt to changes in c++utilities
2019-06-14 19:16:51 +02:00
Martchus
8cac133104
Adapt to changes in c++utilities
2019-06-10 22:46:06 +02:00
Martchus
2194000938
Apply cmake-format 0.5.1
2019-06-01 12:16:27 +02:00
Martchus
dd174920fe
Adapt to c++utilities v5
2019-05-04 16:09:58 +02:00
Martchus
9b80d662bb
Catch polymorphic type by reference
2019-04-19 22:24:32 +02:00
Martchus
2b0acbdd1e
Cast pointer to the right type on non 64-bit architectures
...
That could explain why the tests sometimes fail under armv7l (before
making the fix for big pointer IDs).
2019-03-08 17:44:20 +01:00
Martchus
0bf19df0d9
Add explicit test for type mismatch on binary serialization
2019-03-08 17:40:36 +01:00
Martchus
04852627b2
Fix binary serializiation of shared_ptr too big for variable length encoding
...
* Retain backward compatibility by using either variable length int
or regular 64-bit int extending the flags
* Add test for both cases
2019-03-08 17:40:08 +01:00
Martchus
1f6fade6c2
Apply cmake-format
2019-02-09 21:25:11 +01:00
Martchus
39dcba215e
Let CMake generate code for test application
2019-01-13 22:27:35 +01: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
712eb4fb28
Fix compiling with GCC
...
Template specializations produced by the macros apparently
must be in the same namespace for GCC (not sure whether this
is actually enforced by the standard).
2018-11-01 04:54:46 +00: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
f77229471a
Allow to teat custom types as std::map/std::set
2018-11-01 04:54:46 +00:00