Defines the base class for struct objects. These are JavaScript objects that have specific members. Passing in any JavaScript object is valid and the respective members will be converted. Any extra members will not be copied.
This is a forgiving type, namely it will try to convert each field if possible. If it is not possible, the field will be the default. However, if the argument is not an object, it is invalid. This is non-nullable, so to accept null, use optional<Struct>.
In addition to deriving from this type, a Struct must also have a static |name| method. This is similar to BackingObjects, but you should NOT use DECLARE_TYPE_INFO. It is required to have a default (argument-less) constructor which can be implicit or user defined. If it is defined you CANNOT have member initialization (field assignments before the '{'), you MUST use assignment within the constructor body, otherwise the field will not be registered (see the macro above).
This stores the original JavaScript object this came from. ToJsValue will return that if this came from JavaScript; otherwise this creates a new JavaScript object to return. Any fields that are changed in C++ will be updated when returned back to JavaScript.
Definition at line 166 of file struct.h.