[−][src]Trait gdnative::prelude::ToVariant
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, orNilifNoneResult<T, E>is represented as an externally taggedDictionary(see below).PhantomData<T>is represented asNil.&[T]andVec<T>are represented asVariantArrays.FromVariantis only implemented forVec<T>.
Deriving ToVariant
The derive macro does the following mapping between Rust structures and Godot types:
Newtype(inner)is unwrapped toinnerTuple(a, b, c)is represented as aVariantArray([a, b, c])Struct { a, b, c }is represented as aDictionary({ "a": a, "b": b, "c": c })Unitis represented as an emptyDictionary({})Enum::Variant(a, b, c)is represented as an externally taggedDictionary({ "Variant": [a, b, c] })
Behavior of the derive macros can be customized using attributes:
Field attributes
#[variant(to_variant_with = "path::to::func")]
Use the given function to convert the field to Variant. The function's signature is
expected to be fn(&T) -> Variant, although it can be generic over T.
#[variant(from_variant_with = "path::to::func")]
Use the given function to convert from a Variant. The function's signature is
expected to be fn(&Variant) -> Result<T, FromVariantError>, although it can be generic
over T.
#[variant(with = "path::to::mod")]
Convenience attribute that sets to_variant_with to path::to::mod::to_variant and
from_variant_with to path::to::mod::from_variant.
#[variant(skip_to_variant)]
Skip the field when converting to Variant.
#[variant(skip_from_variant)]
Skip the field when converting from Variant. A default vale will be obtained using
Default::default().
#[variant(skip)]
Convenience attribute that sets skip_to_variant and skip_from_variant.
Required methods
fn to_variant(&self) -> Variant
Implementations on Foreign Types
impl<T> ToVariant for PhantomData<T>[src]
fn to_variant(&self) -> Variant[src]
impl<T> ToVariant for Option<T> where
T: ToVariant, [src]
T: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for str[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for f32[src]
fn to_variant(&self) -> Variant[src]
impl<T7, T8, T9, T10, T11, T12> ToVariant for (T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T4, T5, T6, T7, T8, T9, T10, T11, T12> ToVariant for (T4, T5, T6, T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for f64[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for isize[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for i64[src]
fn to_variant(&self) -> Variant[src]
impl<'a, T> ToVariant for &'a T where
T: ToVariant + ?Sized, [src]
T: ToVariant + ?Sized,
fn to_variant(&self) -> Variant[src]
impl ToVariant for Transform2D<f32, UnknownUnit, UnknownUnit>[src]
fn to_variant(&self) -> Variant[src]
impl<'_, T> ToVariant for &'_ [T] where
T: ToVariant, [src]
T: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T12> ToVariant for (T12,) where
T12: ToVariant, [src]
T12: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToVariant for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToVariant for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T2: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T2: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for Vector3D<f32, UnknownUnit>[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for u16[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for u8[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Rect<f32, UnknownUnit>[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for i16[src]
fn to_variant(&self) -> Variant[src]
impl<T11, T12> ToVariant for (T11, T12) where
T11: ToVariant,
T12: ToVariant, [src]
T11: ToVariant,
T12: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T> ToVariant for Vec<T> where
T: ToVariant, [src]
T: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for Rotation3D<f32, UnknownUnit, UnknownUnit>[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for i8[src]
fn to_variant(&self) -> Variant[src]
impl<'a, T> ToVariant for &'a mut T where
T: ToVariant + ?Sized, [src]
T: ToVariant + ?Sized,
fn to_variant(&self) -> Variant[src]
impl<T8, T9, T10, T11, T12> ToVariant for (T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T, E> ToVariant for Result<T, E> where
E: ToVariant,
T: ToVariant, [src]
E: ToVariant,
T: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T5, T6, T7, T8, T9, T10, T11, T12> ToVariant for (T5, T6, T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for ()[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for String[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for usize[src]
fn to_variant(&self) -> Variant[src]
impl<T6, T7, T8, T9, T10, T11, T12> ToVariant for (T6, T7, T8, T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for u64[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Vector2D<f32, UnknownUnit>[src]
fn to_variant(&self) -> Variant[src]
impl<T9, T10, T11, T12> ToVariant for (T9, T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T9: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
impl ToVariant for i32[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for bool[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for u32[src]
fn to_variant(&self) -> Variant[src]
impl<T10, T11, T12> ToVariant for (T10, T11, T12) where
T10: ToVariant,
T11: ToVariant,
T12: ToVariant, [src]
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
fn to_variant(&self) -> Variant[src]
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToVariant for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
T1: ToVariant,
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T2: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant, [src]
T1: ToVariant,
T10: ToVariant,
T11: ToVariant,
T12: ToVariant,
T2: ToVariant,
T3: ToVariant,
T4: ToVariant,
T5: ToVariant,
T6: ToVariant,
T7: ToVariant,
T8: ToVariant,
T9: ToVariant,
fn to_variant(&self) -> Variant[src]
Implementors
impl ToVariant for Aabb[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Basis[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Color[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Dictionary<Shared>[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for GodotString[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for NodePath[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Plane[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Rid[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Transform[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for Variant[src]
fn to_variant(&self) -> Variant[src]
impl ToVariant for VariantArray<Shared>[src]
fn to_variant(&self) -> Variant[src]
impl<'a, T> ToVariant for TRef<'a, T, Shared> where
T: GodotObject, [src]
T: GodotObject,
fn to_variant(&self) -> Variant[src]
impl<T> ToVariant for Ref<T, Shared> where
T: GodotObject, [src]
T: GodotObject,
fn to_variant(&self) -> Variant[src]
impl<T> ToVariant for TypedArray<T> where
T: Element, [src]
T: Element,
fn to_variant(&self) -> Variant[src]
impl<T, Access> ToVariant for Instance<T, Access> where
Access: ThreadAccess,
T: NativeClass,
Ref<<T as NativeClass>::Base, Access>: ToVariant, [src]
Access: ThreadAccess,
T: NativeClass,
Ref<<T as NativeClass>::Base, Access>: ToVariant,