Module meta
Expand description
Meta-information about Godot types, their properties and conversions between them.
§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.
§Argument conversions
Rust does not support implicit conversions, however it has something very close: the impl Into<T>
idiom, which can be used to convert
“T-compatible” arguments into T
. This library specializes this idea with two traits:
AsArg<T>
allows argument conversions from arguments intoT
. This is most interesting in the context of strings (so you can pass&str
to a function expectingGString
), but is generic to support e.g. array insertion.AsObjectArg<T>
is a more specialized version ofAsArg
that is used for object arguments, i.e.Gd<T>
.
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.
Traits§
- Marker trait to identify types that can be stored in
Array<T>
. - Implicit conversions for arguments passed to Godot APIs.
- Objects that can be passed as arguments to Godot engine functions.
- 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. - Implemented for all parameter types
T
that are allowed to receive implAsArg<T>
. - Defines the canonical conversion to Godot for a type.