godot-rust/gdext

Type-safe API to query Godot features

Open

#541 opened on Dec 19, 2023

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Rust (300 forks)auto 404
c: enginefeaturegood first issue

Repository metrics

Stars
 (4,972 stars)
PR merge metrics
 (PR metrics pending)

Description

We already have the GdextBuild class which gives access to API and runtime versions.

There are more capabilities that can be queried, e.g. using OS::has_feature().

The feature tags are however stringly typed, and it would be nice to have a type-safe API. Instead of a single enum grouping all values, we could categorize features into multiple specific enums. The docs contain a bullet list:

Godot has a special system to tag availability of features. Each feature is represented as a string, which can refer to many of the following:

  • Platform name.
  • Platform architecture (64-bit or 32-bit, x86 or ARM).
  • Platform type (desktop, mobile, Web).
  • Supported texture compression algorithms on the platform.
  • Whether a build is debug or release (debug includes the editor).
  • Whether the project is running from the editor or a "standalone" binary.
  • Many more things.

We would need to make sure that enum variants are truly exclusive, otherwise we'd need to model things differently. Knowing the exact semantics may require some research.

Contributor guide