Description
Some operations that are simple in GDScript are quite verbose in godot-rust. This has mostly to do with static typing, safety, and the need to emulate inheritance, so it's partly justified. Still, I think we don't gain much if we force users to abstract these often-used chores on their own; having them in one central place would allow for code reuse and more robust code, as many contributors use it and give their feedback.
A discussion that needs to take place, is whether macros should be able to implicitly use unsafe
code, which somewhat defeats the "user code must explicitly opt-in to unsafe behavior". Interesting resources in this regard:
- https://steveklabnik.com/writing/the-cxx-debate
- https://www.abubalay.com/blog/2020/08/22/safe-bindings-in-rust (elaboration on cxx)
- https://internals.rust-lang.org/t/explicitly-marking-unsafe-macro-expressions/9425
- https://www.reddit.com/r/rust/comments/ltnpr1/totallysafetransmute/
Please respond in the comments with functionality that you use on a regular basis, but is cumbersome or overly verbose with current godot-rust syntax.