The main goal here was to provide better error messages on failed casts and naming collisions that may be seen in the simulation state. To do so, both parameters and state fields now inherit from Nameable which carries a string representation of that particular object's name and a string representation of the type. These strings are now used to generate superior error messages on failed casts and naming collisions.
As an aside, I removed type casting directly on parameters and state fields in favor of requiring users to explicitly call get for reads and writes to the underlying value.
The autocoder and Python bindings were updated as needed and the single orbit simulation still runs:
Closes #232.
Overview
The main goal here was to provide better error messages on failed casts and naming collisions that may be seen in the simulation state. To do so, both parameters and state fields now inherit from
Nameable
which carries a string representation of that particular object's name and a string representation of the type. These strings are now used to generate superior error messages on failed casts and naming collisions.As an aside, I removed type casting directly on parameters and state fields in favor of requiring users to explicitly call
get
for reads and writes to the underlying value.The autocoder and Python bindings were updated as needed and the single orbit simulation still runs: