godot

Module meta

Expand description

Meta-information about variant types, properties and class names.

§Conversions between types

§Godot representation

The library provides two traits FromGodot and ToGodot, which are used at the Rust <-> Godot boundary, both in user-defined functions (#[func]) and engine APIs (godot::classes module). Their to_godot() and from_godot() methods convert types from/to their closest possible Godot type (e.g. GString instead of Rust String). You usually don’t need to call these methods yourself, they are automatically invoked when passing objects to/from Godot.

Most often, the two traits appear in pairs, however there are cases where only one of the two is implemented. For example, &str implements ToGodot but not FromGodot. Additionally, GodotConvert acts as a supertrait of both FromGodot and ToGodot. Its sole purpose is to define the “closest possible Godot type” GodotConvert::Via.

For fallible conversions, you can use FromGodot::try_from_godot().

§Variants

ToGodot and FromGodot also implement a conversion to/from Variant, which is the most versatile Godot type. This conversion is available via to_variant() and from_variant() methods. These methods are also available directly on Variant itself, via to(), try_to() and from() functions.

§Class conversions

Godot classes exist in a hierarchy. In OOP, it is usually possible to represent pointers to derived objects as pointer to their bases. For conversions between base and derived class objects, you can use Gd methods cast(), try_cast() and upcast(). Upcasts are infallible.

Modules§

  • Errors in the gdext library.

Structs§

  • Name of a class registered with Godot.
  • Describes a method in Godot.
  • Info needed by Godot, for how to export a type to the editor.
  • Describes a property in Godot.
  • Simple reference wrapper, used when passing arguments by-ref to Godot APIs.
  • Configuration for a remote procedure call, used with #[rpc(config = ...)].

Traits§

  • Implemented for all parameter types T that are allowed to receive impl AsArg<T>.
  • Marker trait to identify types that can be stored in Array<T>.
  • Implicit conversions for arguments passed to Godot APIs.
  • Defines the canonical conversion from Godot for a type.
  • Indicates that a type can be passed to/from Godot, either directly or through an intermediate “via” type.
  • Type that is directly representable in the engine.
  • Marker trait to identify types that can be stored in Packed*Array types.
  • Defines the canonical conversion to Godot for a type.