Trait ToGodot
pub trait ToGodot: Sized + GodotConvert {
type Pass: ArgPassing;
// Required method
fn to_godot(&self) -> <Self::Pass as ArgPassing>::Output<'_, Self::Via>;
// Provided methods
fn to_godot_owned(&self) -> Self::Via
where Self::Via: Clone { ... }
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 Pass: ArgPassing
type Pass: ArgPassing
Whether arguments of this type are passed by value or by reference.
Can be either ByValue or ByRef. In most cases, you need ByValue.
Select ByValue if:
SelfisCopy(e.g.i32,f64,Vector2,Color, etc).- You need a conversion (e.g.
Self = MyString,Via = GString). - You like the simple life and can’t be bothered with lifetimes.
Select ByRef if:
- Performance of argument passing is very important and you have measured it.
- You store a cached value which can be borrowed (e.g.
&GString).
Will auto-implement AsArg<T> for either T (by-value) or for &T (by-reference).
This has an influence on contexts such as Array::push(), the array![...]
macro or generated signal emit() signatures.
Required Methods§
Provided Methods§
fn to_godot_owned(&self) -> Self::Via
fn to_godot_owned(&self) -> Self::Via
Converts this type to owned Godot representation.
Always returns Self::Via, cloning if necessary for ByRef types.
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.
Implementations on Foreign Types§
§impl ToGodot for Result<(), Error>
Shim that turns outgoing Result<(), Error> values into Errors, where Ok(()) becomes Error::OK.
impl ToGodot for Result<(), Error>
Shim that turns outgoing Result<(), Error> values into Errors, where Ok(()) becomes Error::OK.