Lots of pointer confusion caused by everything being void*. The
problem ended up actually being bad keys passed in, which I discovered
only after slowing down and really reading what was going on.
* Got very confused by pointer schenanigans, but resolved them
* Added introspect-test-struct to make it easier to exercise test
suite on new types
* Exposed useful introspect read functions
* Any dynarray of structs now be written with Introspection. I'm
really pleased with how easy it was to implement this
* Added struct-size which was essential for this application
* write-introspect-struct-s-expr now returns success/failure
* AutoTest now forward-declares test functions rather than having to
import the module. This is much simpler, plus made it possible to add
ProfilerAutoInstrument to the test set (automatically instrumenting
all tests)
* Fix off-by-one error in read-introspect-struct-s-expr. I'm not sure
why this didn't fail earlier
Because there are many questions to ask for pointers to things (is it
owned or unowned? How do I create it? Is it a deep compare or shallow?
etc.), these always require an override handler to be defined.
Note that the example handlers don't really compare the pointer in
this case, they just write null.
This makes it easier to import modules which use introspection without
also having to import introspection. It's a bit more convenient to
already have that pointer as well.
* Reorder handlers to match function order in file
* Convert write-s-expr handler to do dispatch outside the override
handler. This matches the other handlers
* Reordered handler signatures and arguments for consistency
* Clean up outdated TODOs and dead code
* Test arrays of overridden types
This system allows the user to easily define handlers for various
introspection use-cases. This facilitates creation of custom
readers/writers etc. for complex types
By hiding the window immediately on exit case, the user gets a much
more responsive experience when hitting the close button, even if the
app takes some time to clean up.