Update TODOs

This commit is contained in:
Martchus 2018-01-21 19:44:33 +01:00
parent a2f9c915b6
commit 079534f301
2 changed files with 23 additions and 14 deletions

View File

@ -25,18 +25,19 @@ The basic functionality is implemented, tested and documented:
* allow to use Boost.Hana * allow to use Boost.Hana
### TODOs ### TODOs
There are still things missing which would likely be very useful in practise. The following list contains There are still things missing which would likely be very useful in practise. The following list contains the open TODOs which are supposed to be most relevant in practise:
the most important TODOs:
* [ ] Allow to specify which member variables should be considered. * [ ] Allow to specify which member variables should be considered
* This could work similar to Qt's Signals & Slots * This could work similar to Qt's Signals & Slots macros.
* but there should also be a way to do this for 3rdparty types. * but there should also be a way to do this for 3rdparty types.
* Note that currently, *all* public member variables are (de)serialized. * Note that currently, *all* public member variables are (de)serialized.
* [ ] Support getter/setter methods * [ ] Support getter/setter methods
* [ ] Allow to serialize the result of methods. * [ ] Allow to serialize the result of methods
* [ ] Allow to pass a deserialized value to a method. * [ ] Allow to pass a deserialized value to a method
* [ ] Validate enum values when deserializing. * [ ] Validate enum values when deserializing
* [ ] Untie serialization and deserialization. * [ ] Untie serialization and deserialization
For a full list of TODOs, see [TODOs.md](./TODOs.md).
## Supported datatypes ## Supported datatypes
The following table shows the mapping of supported C++ types to supported JSON types: The following table shows the mapping of supported C++ types to supported JSON types:

View File

@ -5,17 +5,25 @@
- [x] Add reflector based on Boost.Hana - [x] Add reflector based on Boost.Hana
- [ ] Add another generator to prove expandability: maybe for getting members by name in general, similar to one of the proposals - [ ] Add another generator to prove expandability: maybe for getting members by name in general, similar to one of the proposals
- [x] Add documentation (install instructions, usage) - [x] Add documentation (install instructions, usage)
- [ ] Fix the massive number of warnings which are currently being created
- [ ] Test with libc++ (currently only tested with libstdc++)
- [ ] Support enums (undoable with Boost.Hana)
- [ ] Support templated classes
- [x] Allow making 3rdparty classes/structs reflectable - [x] Allow making 3rdparty classes/structs reflectable
- [x] Add additional parameter for code generator to allow specifying relevant classes - [x] Add additional parameter for code generator to allow specifying relevant classes
explicitely explicitely
- [x] Fix traits currently relying on `JsonSerializable` being base class - [x] Fix traits currently relying on `JsonSerializable` being base class
- [x] Allow exporting symbols - [x] Allow exporting symbols
- [ ] Allow (de)serialization of static members (by default?) - [ ] Fix the massive number of warnings which are currently being created
- [ ] Allow ignoring particular members - [ ] Test with libc++ (currently only tested with libstdc++)
- [ ] Support templated classes
- [ ] Allow (de)serialization of static members (if that makes sense?)
- [ ] Allow ignoring particular members or selecting specificly which member variables should be considered
* This could work similar to Qt's Signals & Slots macros.
* but there should also be a way to do this for 3rdparty types.
* Note that currently, *all* public member variables are (de)serialized.
- [ ] Allow using getter and setter methods
* [ ] Allow to serialize the result of methods.
* [ ] Allow to pass a deserialized value to a method.
* [ ] Validate enum values when deserializing
* Likely undoable with Boost.Hana
* [ ] Untie serialization and deserialization
## Library-only ## Library-only
- [x] Support `std::unique_ptr` and `std::shared_ptr` - [x] Support `std::unique_ptr` and `std::shared_ptr`