ToGodot

Trait ToGodot 

Source
pub trait ToGodot: Sized + GodotConvert {
    type Pass: ArgPassing;

    // Required method
    fn to_godot(&self) -> ToArg<'_, Self::Via, Self::Pass>;

    // 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§

Source

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:

  • Self is Copy (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()][crate::builtin::Array::push], the array![...] macro or generated signal emit() signatures.

Required Methods§

Source

fn to_godot(&self) -> ToArg<'_, Self::Via, Self::Pass>

Converts this type to Godot representation, optimizing for zero-copy when possible.

§Return type
  • For Pass = ByValue, returns owned Self::Via.
  • For Pass = ByRef, returns borrowed &Self::Via.

Provided Methods§

Source

fn to_godot_owned(&self) -> Self::Via
where Self::Via: Clone,

Converts this type to owned Godot representation.

Always returns Self::Via, cloning if necessary for ByRef types.

Source

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§

Source§

impl ToGodot for &str

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for bool

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for f32

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for f64

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for i8

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for i16

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for i32

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for i64

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const c_void

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const u8

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const AudioFrame

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const Glyph

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const ObjectId

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer2DExtensionMotionResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer2DExtensionRayResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer2DExtensionShapeRestInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer2DExtensionShapeResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer3DExtensionMotionCollision

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer3DExtensionMotionResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer3DExtensionRayResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer3DExtensionShapeRestInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const PhysicsServer3DExtensionShapeResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *const ScriptLanguageExtensionProfilingInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut c_void

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut f64

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut i32

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut *const u8

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut u8

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut AudioFrame

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut Glyph

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut ObjectId

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer2DExtensionMotionResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer2DExtensionRayResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer2DExtensionShapeRestInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer2DExtensionShapeResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer3DExtensionMotionCollision

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer3DExtensionMotionResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer3DExtensionRayResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer3DExtensionShapeRestInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut PhysicsServer3DExtensionShapeResult

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for *mut ScriptLanguageExtensionProfilingInfo

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for u8

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for u16

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for u32

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for u64

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

fn to_variant(&self) -> Variant

Source§

impl ToGodot for ()

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl ToGodot for String

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl<T> ToGodot for Option<T>
where T: ToGodot<Pass = ByObject>, for<'f> T::Via: Clone + GodotType<Ffi: GodotNullableFfi, ToFfi<'f>: GodotNullableFfi>,

Source§

type Pass = ByOption<<T as GodotConvert>::Via>

Source§

fn to_godot(&self) -> Option<&T::Via>

Source§

fn to_godot_owned(&self) -> Option<T::Via>
where Self::Via: Clone,

Source§

fn to_variant(&self) -> Variant

Source§

impl<T: ArrayElement> ToGodot for &[T]

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl<T: ArrayElement> ToGodot for Vec<T>

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Source§

impl<T: ArrayElement, const LEN: usize> ToGodot for [T; LEN]

Source§

type Pass = ByValue

Source§

fn to_godot(&self) -> Self::Via

Implementors§

Source§

impl ToGodot for Corner

Source§

impl ToGodot for EulerOrder

Source§

impl ToGodot for Side

Source§

impl ToGodot for ClockDirection

Source§

impl ToGodot for Orientation

Source§

impl ToGodot for VariantOperator

Source§

impl ToGodot for VariantType

Source§

impl ToGodot for ClipChildrenMode

Source§

impl ToGodot for TextureFilter

Source§

impl ToGodot for TextureRepeat

Source§

impl ToGodot for ApiType

Source§

impl ToGodot for AfterGuiInput

Source§

impl ToGodot for CustomControlContainer

Source§

impl ToGodot for DockSlot

Source§

impl ToGodot for CompressionMode

Source§

impl ToGodot for ModeFlags

Source§

impl ToGodot for UnixPermissionFlags

Source§

impl ToGodot for Result

Source§

impl ToGodot for CursorShape

Source§

impl ToGodot for MouseMode

Source§

impl ToGodot for godot_core::classes::mesh::ArrayCustomFormat

Source§

impl ToGodot for godot_core::classes::mesh::ArrayFormat

Source§

impl ToGodot for godot_core::classes::mesh::ArrayType

Source§

impl ToGodot for godot_core::classes::mesh::BlendShapeMode

Source§

impl ToGodot for godot_core::classes::mesh::PrimitiveType

Source§

impl ToGodot for AutoTranslateMode

Source§

impl ToGodot for DuplicateFlags

Source§

impl ToGodot for InternalMode

Source§

impl ToGodot for PhysicsInterpolationMode

Source§

impl ToGodot for ProcessMode

Source§

impl ToGodot for ProcessThreadGroup

Source§

impl ToGodot for ProcessThreadMessages

Source§

impl ToGodot for RotationEditMode

Source§

impl ToGodot for ConnectFlags

Source§

impl ToGodot for RenderingDriver

Source§

impl ToGodot for StdHandleType

Source§

impl ToGodot for SystemDir

Source§

impl ToGodot for GenEditState

Source§

impl ToGodot for godot_core::classes::rendering_server::ArrayCustomFormat

Source§

impl ToGodot for godot_core::classes::rendering_server::ArrayFormat

Source§

impl ToGodot for godot_core::classes::rendering_server::ArrayType

Source§

impl ToGodot for BakeChannels

Source§

impl ToGodot for godot_core::classes::rendering_server::BlendShapeMode

Source§

impl ToGodot for CanvasGroupMode

Source§

impl ToGodot for CanvasItemTextureFilter

Source§

impl ToGodot for CanvasItemTextureRepeat

Source§

impl ToGodot for CanvasLightBlendMode

Source§

impl ToGodot for CanvasLightMode

Source§

impl ToGodot for CanvasLightShadowFilter

Source§

impl ToGodot for CanvasOccluderPolygonCullMode

Source§

impl ToGodot for CanvasTextureChannel

Source§

impl ToGodot for CompositorEffectCallbackType

Source§

impl ToGodot for CompositorEffectFlags

Source§

impl ToGodot for CubeMapLayer

Source§

impl ToGodot for DecalFilter

Source§

impl ToGodot for DecalTexture

Source§

impl ToGodot for DofBlurQuality

Source§

impl ToGodot for DofBokehShape

Source§

impl ToGodot for EnvironmentAmbientSource

Source§

impl ToGodot for EnvironmentBg

Source§

impl ToGodot for EnvironmentFogMode

Source§

impl ToGodot for EnvironmentGlowBlendMode

Source§

impl ToGodot for EnvironmentReflectionSource

Source§

impl ToGodot for EnvironmentSdfgiFramesToConverge

Source§

impl ToGodot for EnvironmentSdfgiFramesToUpdateLight

Source§

impl ToGodot for EnvironmentSdfgiRayCount

Source§

impl ToGodot for EnvironmentSdfgiYScale

Source§

impl ToGodot for EnvironmentSsaoQuality

Source§

impl ToGodot for EnvironmentSsilQuality

Source§

impl ToGodot for EnvironmentSsrRoughnessQuality

Source§

impl ToGodot for EnvironmentToneMapper

Source§

impl ToGodot for Features

Source§

impl ToGodot for FogVolumeShape

Source§

impl ToGodot for GlobalShaderParameterType

Source§

impl ToGodot for InstanceFlags

Source§

impl ToGodot for InstanceType

Source§

impl ToGodot for LightBakeMode

Source§

impl ToGodot for LightDirectionalShadowMode

Source§

impl ToGodot for LightDirectionalSkyMode

Source§

impl ToGodot for LightOmniShadowMode

Source§

impl ToGodot for LightParam

Source§

impl ToGodot for LightProjectorFilter

Source§

impl ToGodot for LightType

Source§

impl ToGodot for MultimeshPhysicsInterpolationQuality

Source§

impl ToGodot for MultimeshTransformFormat

Source§

impl ToGodot for NinePatchAxisMode

Source§

impl ToGodot for ParticlesCollisionHeightfieldResolution

Source§

impl ToGodot for ParticlesCollisionType

Source§

impl ToGodot for ParticlesDrawOrder

Source§

impl ToGodot for ParticlesMode

Source§

impl ToGodot for ParticlesTransformAlign

Source§

impl ToGodot for PipelineSource

Source§

impl ToGodot for godot_core::classes::rendering_server::PrimitiveType

Source§

impl ToGodot for ReflectionProbeAmbientMode

Source§

impl ToGodot for ReflectionProbeUpdateMode

Source§

impl ToGodot for RenderingInfo

Source§

impl ToGodot for ShaderMode

Source§

impl ToGodot for ShadowCastingSetting

Source§

impl ToGodot for ShadowQuality

Source§

impl ToGodot for SkyMode

Source§

impl ToGodot for SubSurfaceScatteringQuality

Source§

impl ToGodot for TextureLayeredType

Source§

impl ToGodot for TextureType

Source§

impl ToGodot for ViewportAnisotropicFiltering

Source§

impl ToGodot for ViewportClearMode

Source§

impl ToGodot for ViewportDebugDraw

Source§

impl ToGodot for ViewportEnvironmentMode

Source§

impl ToGodot for ViewportMsaa

Source§

impl ToGodot for ViewportOcclusionCullingBuildQuality

Source§

impl ToGodot for ViewportRenderInfo

Source§

impl ToGodot for ViewportRenderInfoType

Source§

impl ToGodot for ViewportScaling3DMode

Source§

impl ToGodot for ViewportScreenSpaceAa

Source§

impl ToGodot for ViewportSdfOversize

Source§

impl ToGodot for ViewportSdfScale

Source§

impl ToGodot for ViewportUpdateMode

Source§

impl ToGodot for ViewportVrsMode

Source§

impl ToGodot for ViewportVrsUpdateMode

Source§

impl ToGodot for VisibilityRangeFadeMode

Source§

impl ToGodot for VoxelGiQuality

Source§

impl ToGodot for DeepDuplicateMode

Source§

impl ToGodot for godot_core::classes::resource_format_loader::CacheMode

Source§

impl ToGodot for godot_core::classes::resource_loader::CacheMode

Source§

impl ToGodot for ThreadLoadStatus

Source§

impl ToGodot for SaverFlags

Source§

impl ToGodot for GroupCallFlags

Source§

impl ToGodot for ScriptNameCasing

Source§

impl ToGodot for CodeCompletionKind

Source§

impl ToGodot for CodeCompletionLocation

Source§

impl ToGodot for LookupResultType

Source§

impl ToGodot for Month

Source§

impl ToGodot for Weekday

Source§

impl ToGodot for AnisotropicFiltering

Source§

impl ToGodot for DebugDraw

Source§

impl ToGodot for DefaultCanvasItemTextureFilter

Source§

impl ToGodot for DefaultCanvasItemTextureRepeat

Source§

impl ToGodot for Msaa

Source§

impl ToGodot for PositionalShadowAtlasQuadrantSubdiv

Source§

impl ToGodot for RenderInfo

Source§

impl ToGodot for RenderInfoType

Source§

impl ToGodot for Scaling3DMode

Source§

impl ToGodot for ScreenSpaceAa

Source§

impl ToGodot for SdfOversize

Source§

impl ToGodot for SdfScale

Source§

impl ToGodot for VrsMode

Source§

impl ToGodot for VrsUpdateMode

Source§

impl ToGodot for ContentScaleAspect

Source§

impl ToGodot for ContentScaleMode

Source§

impl ToGodot for ContentScaleStretch

Source§

impl ToGodot for Flags

Source§

impl ToGodot for LayoutDirection

Source§

impl ToGodot for Mode

Source§

impl ToGodot for WindowInitialPosition

Source§

impl ToGodot for Error

Source§

impl ToGodot for HorizontalAlignment

Source§

impl ToGodot for InlineAlignment

Source§

impl ToGodot for JoyAxis

Source§

impl ToGodot for JoyButton

Source§

impl ToGodot for Key

Source§

impl ToGodot for KeyLocation

Source§

impl ToGodot for KeyModifierMask

Source§

impl ToGodot for MethodFlags

Source§

impl ToGodot for MidiMessage

Source§

impl ToGodot for MouseButton

Source§

impl ToGodot for MouseButtonMask

Source§

impl ToGodot for PropertyHint

Source§

impl ToGodot for PropertyUsageFlags

Source§

impl ToGodot for VerticalAlignment

Source§

impl ToGodot for InstanceId

Source§

impl<T, D> ToGodot for DynGd<T, D>
where T: GodotClass, D: ?Sized,

Source§

type Pass = <Gd<T> as ToGodot>::Pass

Source§

impl<T: GodotClass> ToGodot for Gd<T>