Trait ToGodot
pub trait ToGodot: Sized + GodotConvert {
type ToVia<'v>: GodotType
where Self: 'v;
// Required method
fn to_godot(&self) -> Self::ToVia<'_>;
// Provided method
fn to_variant(&self) -> Variant { ... }
}
Expand description
Defines the canonical conversion to Godot for a type.
It is assumed that all the methods return equal values given equal inputs. Additionally, it is assumed
that if FromGodot
is implemented, converting to Godot and back again will return a value equal to the
starting value.
Violating these assumptions is safe but will give unexpected results.
Please read the godot::meta
module docs for further information about conversions.
This trait can be derived using the #[derive(GodotConvert)]
macro.
Required Associated Types§
type ToVia<'v>: GodotType
where
Self: 'v
type ToVia<'v>: GodotType where Self: 'v
Target type of to_godot()
, which can differ from Via
for pass-by-reference types.
Note that currently, this only differs from Via
when Self
is RefArg<'r, T>
, which is
used inside generated code of engine methods. Other uses of to_godot()
, such as return types in #[func]
, still use value types.
This may change in future versions.
See also AsArg<T>
used as the “front-end” in Godot API parameters.
Required Methods§
Provided Methods§
fn to_variant(&self) -> Variant
fn to_variant(&self) -> Variant
Converts this type to a Variant.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.