[−][src]Trait gdnative_core::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, orNil
ifNone
Result<T, E>
is represented as an externally taggedDictionary
(see below).PhantomData<T>
is represented asNil
.&[T]
andVec<T>
are represented asVariantArray
s.FromVariant
is only implemented forVec<T>
.
Deriving ToVariant
The derive macro does the following mapping between Rust structures and Godot types:
Newtype(inner)
is unwrapped toinner
Tuple(a, b, c)
is represented as aVariantArray
([a, b, c]
)Struct { a, b, c }
is represented as aDictionary
({ "a": a, "b": b, "c": c }
)Unit
is 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
.
Required methods
fn to_variant(&self) -> Variant
Implementations on Foreign Types
impl ToVariant for ()
[src]
fn to_variant(&self) -> Variant
[src]
impl<'a, T> ToVariant for &'a T where
T: ToVariant,
[src]
T: ToVariant,
fn to_variant(&self) -> Variant
[src]
impl<'a, T> ToVariant for &'a mut T where
T: ToVariant,
[src]
T: ToVariant,
fn to_variant(&self) -> Variant
[src]
impl ToVariant for i64
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for u64
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for f64
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for i8
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for i16
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for i32
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for isize
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for u8
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for u16
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for u32
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for usize
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for f32
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for str
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for String
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for bool
[src]
fn to_variant(&self) -> Variant
[src]
impl<T> ToVariant for PhantomData<T>
[src]
fn to_variant(&self) -> Variant
[src]
impl<T: ToVariant> ToVariant for Option<T>
[src]
fn to_variant(&self) -> Variant
[src]
impl<T: ToVariant, E: ToVariant> ToVariant for Result<T, E>
[src]
fn to_variant(&self) -> Variant
[src]
impl<'_, T: ToVariant> ToVariant for &'_ [T]
[src]
fn to_variant(&self) -> Variant
[src]
impl<T: ToVariant> ToVariant for Vec<T>
[src]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[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]
fn to_variant(&self) -> Variant
[src]
impl<T7: ToVariant, T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T7, T8, T9, T10, T11, T12)
[src]
fn to_variant(&self) -> Variant
[src]
impl<T8: ToVariant, T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T8, T9, T10, T11, T12)
[src]
fn to_variant(&self) -> Variant
[src]
impl<T9: ToVariant, T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T9, T10, T11, T12)
[src]
fn to_variant(&self) -> Variant
[src]
impl<T10: ToVariant, T11: ToVariant, T12: ToVariant> ToVariant for (T10, T11, T12)
[src]
fn to_variant(&self) -> Variant
[src]
impl<T11: ToVariant, T12: ToVariant> ToVariant for (T11, T12)
[src]
fn to_variant(&self) -> Variant
[src]
impl<T12: ToVariant> ToVariant for (T12,)
[src]
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 Plane
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Transform
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for ByteArray
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Color
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for ColorArray
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Dictionary
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Float32Array
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for GodotString
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Int32Array
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for NodePath
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Object
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Reference
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Rid
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for StringArray
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Variant
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for VariantArray
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Vector2Array
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Vector3Array
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Quat
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Rect2
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Transform2D
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Vector2
[src]
fn to_variant(&self) -> Variant
[src]
impl ToVariant for Vector3
[src]
fn to_variant(&self) -> Variant
[src]
impl<T> ToVariant for Instance<T> where
T: NativeClass,
T::Base: ToVariant,
[src]
T: NativeClass,
T::Base: ToVariant,