This refactor replaces code created early on to wrap struct field access with rid ffi.
It didn't share any of the types nor render methods with the remaining code.
The new implementation does so as much as possible even though in some areas rendered code has to be somewhat different due to just providing references to data held on by the store directly or indirectly vs. values that are sent to Dart and not held on by Rust at all after that.
Lots of tests were added as well, mainly for the generated Rust code and I will include Rust/Dart integration tests to ensure the generated Dart code is correct as well in another PR.
rid-macro: model fields accessors using newer parsed data
rid-macro: test field access for primitives and strings
rid-macro: fix display + debug tests
rid-macro: field access for custom struct
rid-macro: field access vec<struct|prim> render rust
rid-macro: field vec dart return type and control vec access rendering
rid-macro: fixed vec access rendering for fields
rid-macro: fixed field access dart return type for enums
rid-macro: properly snakecased field access module name
This refactor replaces code created early on to wrap struct field access with rid ffi. It didn't share any of the types nor render methods with the remaining code.
The new implementation does so as much as possible even though in some areas rendered code has to be somewhat different due to just providing references to data held on by the store directly or indirectly vs. values that are sent to Dart and not held on by Rust at all after that.
Lots of tests were added as well, mainly for the generated Rust code and I will include Rust/Dart integration tests to ensure the generated Dart code is correct as well in another PR.