On the Rust side, there are currently a few parts that might potentially be redundant. As it is all still in the early development phase, this might change (so I am not doing larger refactoring yet). Once we move a bit, however, we should be aware that the following things could be merged together or (with some changes) removed:
In the properties module, DynProperty and StatProperty implement similar API, we can probably move it into a separate Property trait.
Manager classes currently implement their own serde (de)serialization - this could probably be avoided using some utilities and serde tags. It might also become obsolete completely, as it seems the (de)serialization will be done through suitable intermediate structs (see data_structs module).
Some of the low-level structs in data_structs module might become redundant (mainly different kinds of properties, and some enums), as their main goal is to allow for simple (de)serialization, and the same could probably be achieved through the use serde tags. This is not the case for the "top-level" structures.
The redundant serialization code for manager classes was removed in #52 and #56. We use the intermediate simplified structs in data_structs module for (de)serialization.
On the Rust side, there are currently a few parts that might potentially be redundant. As it is all still in the early development phase, this might change (so I am not doing larger refactoring yet). Once we move a bit, however, we should be aware that the following things could be merged together or (with some changes) removed:
properties
module,DynProperty
andStatProperty
implement similar API, we can probably move it into a separateProperty
trait.serde
(de)serialization - this could probably be avoided using some utilities andserde
tags. It might also become obsolete completely, as it seems the (de)serialization will be done through suitable intermediate structs (seedata_structs
module).data_structs
module might become redundant (mainly different kinds of properties, and some enums), as their main goal is to allow for simple (de)serialization, and the same could probably be achieved through the useserde
tags. This is not the case for the "top-level" structures.