Open
Description
Several issues relate to the#[derive(NativeClass)]
macro and in particular the #[export]
token. Both currently lack some functionality, that is either already available in GDScript or would simplify the binding to existing Rust data structures.
Class exports
- Derive NativeClass for known monomorphizations of generic types #601
- Rename
#[derive(NativeClass)]
types #603 - Do not import gdnative types, and use canonical paths in macros #624
- Further static safeguard against creating instances of types with
no_constructor
in Rust #629 - Re-organize type-level attributes in
NativeClass
derive macro #848
Method exports
Property exports
- Specify exported methods as setters and getters in the
property
attribute #547 - export property with Array typehints #638
- Export enum property with custom int discriminants #764
- Integrate with
gdrust
macro for easy property and signal exports #715 - Properties cannot be set during debugging (remote scene tree) #825
Documentation and diagnostics
- Better errors when the signature of exported methods are invalid #439
- Add example for exposing Rust types to GDScript, using derive macros and/or wrapper classes #605
- List of methods that can be exported to Godot #672
- Document precise syntax of exporting #769
"Inverse export" (exposing GDScript API in Rust)