godot-rust / godot-rust/gdext

Builder API to register classes, functions, properties, signals

Open
#4 5 comments 0 reactions 0 assignees View on GitHub
c: register feature hard
Dominant language
Rust
Stars
5.2k
Forks
312
Avg merge
12h 59m
Merged PRs (30d)
9

Description

Functionality that is currently available through proc-macros should ideally be exposed in a programmatic builder API, too.

Some challenges:
* The proc-macros combined with the plugin system detect very fine-grained customization, e.g. every single method in `GodotExt`.
* This would have to be manually annotated in a builder, possibly using static type information (generic arguments).
* Some of the traits and functions generated by proc-macros are internal.
* The builder API could be more high-level and stable.
* Functions are rather verbose to register through builders, with generic-tuples. Think about ways to provide a simple interface.
* In GDNative, this was done via `Method` trait, which is very flexible and general, but required full implementation for every single type. This might serve as a basis, with more higher-level concretizations.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.