[][src]Trait gdnative_core::ToVariant

pub trait ToVariant {
    fn to_variant(&self) -> Variant;
}

Types that can be converted to a Variant.

Wrappers and collections

Implementations are provided for a few common Rust wrappers and collections:

  • Option<T> is unwrapped to inner value, or Nil if None
  • Result<T, E> is represented as an externally tagged Dictionary (see below).
  • PhantomData<T> is represented as Nil.
  • &[T] and Vec<T> are represented as VariantArrays. FromVariant is only implemented for Vec<T>.

Deriving ToVariant

The derive macro does the following mapping between Rust structures and Godot types:

  • Newtype(inner) is unwrapped to inner
  • Tuple(a, b, c) is represented as a VariantArray ([a, b, c])
  • Struct { a, b, c } is represented as a Dictionary ({ "a": a, "b": b, "c": c })
  • Unit is represented as an empty Dictionary ({})
  • Enum::Variant(a, b, c) is represented as an externally tagged Dictionary ({ "Variant": [a, b, c] })

Required methods

fn to_variant(&self) -> Variant

Loading content...

Implementations on Foreign Types

impl ToVariant for ()[src]

impl ToVariant for i8[src]

impl ToVariant for i16[src]

impl ToVariant for i32[src]

impl ToVariant for i64[src]

impl ToVariant for isize[src]

impl ToVariant for u8[src]

impl ToVariant for u16[src]

impl ToVariant for u32[src]

impl ToVariant for u64[src]

impl ToVariant for usize[src]

impl ToVariant for f32[src]

impl ToVariant for f64[src]

impl ToVariant for String[src]

impl ToVariant for bool[src]

impl<T> ToVariant for PhantomData<T>[src]

impl<T: ToVariant> ToVariant for Option<T>[src]

impl<T: ToVariant, E: ToVariant> ToVariant for Result<T, E>[src]

impl<'_, T: ToVariant> ToVariant for &'_ [T][src]

impl<T: ToVariant> ToVariant for Vec<T>[src]

impl<T1: ToVariant, T2: ToVariant, T3: ToVariant, T4: ToVariant, T5: ToVariant, T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T2: ToVariant, T3: ToVariant, T4: ToVariant, T5: ToVariant, T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T3: ToVariant, T4: ToVariant, T5: ToVariant, T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T4: ToVariant, T5: ToVariant, T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T5: ToVariant, T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T6: ToVariant, T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T6, T7, T8, T9, T10, T11, T12)[src]

impl<T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T7, T8, T9, T10, T11, T12)[src]

impl<T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T8, T9, T10, T11, T12)[src]

impl<T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T9, T10, T11, T12)[src]

impl<T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T10, T11, T12)[src]

impl<T11: ToVariant, T12: ToVariant> ToVariant for (T11, T12)[src]

impl<T12: ToVariant> ToVariant for (T12,)[src]

Loading content...

Implementors

impl ToVariant for ByteArray[src]

impl ToVariant for ColorArray[src]

impl ToVariant for Dictionary[src]

impl ToVariant for Float32Array[src]

impl ToVariant for GodotString[src]

impl ToVariant for Int32Array[src]

impl ToVariant for NodePath[src]

impl ToVariant for Object[src]

impl ToVariant for Reference[src]

impl ToVariant for StringArray[src]

impl ToVariant for Variant[src]

impl ToVariant for VariantArray[src]

impl ToVariant for Vector2Array[src]

impl ToVariant for Vector3Array[src]

impl ToVariant for Vector2[src]

impl ToVariant for Vector3[src]

impl<T> ToVariant for Instance<T> where
    T: NativeClass,
    T::Base: ToVariant
[src]

Loading content...