Trait godot::obj::IndexEnum

pub trait IndexEnum: EngineEnum {
    const ENUMERATOR_COUNT: usize;

    // Provided method
    fn to_index(self) -> usize { ... }
}
Expand description

Trait for enums that can be used as indices in arrays.

The conditions for a Godot enum to be “index-like” are:

  • Contains an enumerator ending in _MAX, which has the highest ordinal (denotes the size).
  • All other enumerators are consecutive integers inside 0..max (no negative ordinals, no gaps).

Duplicates are explicitly allowed, to allow for renamings/deprecations. The order in which Godot exposes the enumerators in the JSON is irrelevant.

Required Associated Constants§

const ENUMERATOR_COUNT: usize

Number of distinct enumerators in the enum.

All enumerators are guaranteed to be in the range 0..ENUMERATOR_COUNT, so you can use them as indices in an array of size ENUMERATOR_COUNT.

Keep in mind that two enumerators with the same ordinal are only counted once.

Provided Methods§

fn to_index(self) -> usize

Converts the enumerator to usize, which can be used as an array index.

Note that two enumerators may have the same index, if they have the same ordinal.

Object Safety§

This trait is not object safe.

Implementors§

§

impl IndexEnum for CellShape

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for DiagonalMode

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for Heuristic

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::aes_context::Mode

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::audio_effect_pitch_shift::FftSize

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for godot::engine::audio_effect_spectrum_analyzer::FftSize

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for MagnitudeMode

§

const ENUMERATOR_COUNT: usize = 1usize

§

impl IndexEnum for godot::engine::base_material_3d::Feature

§

const ENUMERATOR_COUNT: usize = 12usize

§

impl IndexEnum for godot::engine::base_material_3d::Flags

§

const ENUMERATOR_COUNT: usize = 22usize

§

impl IndexEnum for ShadingMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::base_material_3d::TextureFilter

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for TextureParam

§

const ENUMERATOR_COUNT: usize = 18usize

§

impl IndexEnum for Transparency

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for ClipChildrenMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::canvas_item::TextureFilter

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::canvas_item::TextureRepeat

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for EffectCallbackType

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for godot::engine::cone_twist_joint_3d::Param

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for godot::engine::cpu_particles_2d::EmissionShape

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::cpu_particles_2d::Parameter

§

const ENUMERATOR_COUNT: usize = 12usize

§

impl IndexEnum for godot::engine::cpu_particles_2d::ParticleFlags

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::cpu_particles_3d::EmissionShape

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::cpu_particles_3d::Parameter

§

const ENUMERATOR_COUNT: usize = 12usize

§

impl IndexEnum for godot::engine::cpu_particles_3d::ParticleFlags

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::decal::DecalTexture

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for CursorShape

§

const ENUMERATOR_COUNT: usize = 17usize

§

impl IndexEnum for WindowFlags

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::editor_feature_profile::Feature

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for DockSlot

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for InternalImportCategory

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for BgMode

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::generic6_dof_joint_3d::Flag

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::generic6_dof_joint_3d::Param

§

const ENUMERATOR_COUNT: usize = 22usize

§

impl IndexEnum for LightmapScale

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for PropertyHint

§

const ENUMERATOR_COUNT: usize = 38usize

§

impl IndexEnum for godot::engine::gpu_particles_collision_height_field_3d::Resolution

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::gpu_particles_collision_sdf_3d::Resolution

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::hinge_joint_3d::Flag

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::hinge_joint_3d::Param

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for Method

§

const ENUMERATOR_COUNT: usize = 9usize

§

impl IndexEnum for CompressMode

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for Format

§

const ENUMERATOR_COUNT: usize = 39usize

§

impl IndexEnum for godot::engine::label_3d::DrawFlags

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::light_3d::Param

§

const ENUMERATOR_COUNT: usize = 21usize

§

impl IndexEnum for godot::engine::line_edit::MenuItems

§

const ENUMERATOR_COUNT: usize = 30usize

§

impl IndexEnum for godot::engine::mesh::ArrayCustomFormat

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::mesh::ArrayType

§

const ENUMERATOR_COUNT: usize = 13usize

§

impl IndexEnum for godot::engine::open_xr_hand::BoneUpdate

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for Hands

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for MotionRange

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for SkeletonRig

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for Hand

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for HandJoints

§

const ENUMERATOR_COUNT: usize = 26usize

§

impl IndexEnum for HandMotionRange

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for HandTrackedSource

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for CollisionMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::particle_process_material::EmissionShape

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::particle_process_material::Parameter

§

const ENUMERATOR_COUNT: usize = 18usize

§

impl IndexEnum for godot::engine::particle_process_material::ParticleFlags

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for SubEmitterMode

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for Monitor

§

const ENUMERATOR_COUNT: usize = 33usize

§

impl IndexEnum for godot::engine::physics_server_2d::BodyParameter

§

const ENUMERATOR_COUNT: usize = 10usize

§

impl IndexEnum for godot::engine::physics_server_2d::JointType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::physics_server_3d::BodyParameter

§

const ENUMERATOR_COUNT: usize = 10usize

§

impl IndexEnum for G6dofJointAxisFlag

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for G6dofJointAxisParam

§

const ENUMERATOR_COUNT: usize = 22usize

§

impl IndexEnum for godot::engine::physics_server_3d::JointType

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for SliderJointParam

§

const ENUMERATOR_COUNT: usize = 22usize

§

impl IndexEnum for BlendFactor

§

const ENUMERATOR_COUNT: usize = 19usize

§

impl IndexEnum for BlendOperation

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for CompareOperator

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for DataFormat

§

const ENUMERATOR_COUNT: usize = 218usize

§

impl IndexEnum for DeviceType

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for FinalAction

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for InitialAction

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for LogicOperation

§

const ENUMERATOR_COUNT: usize = 16usize

§

impl IndexEnum for RenderPrimitive

§

const ENUMERATOR_COUNT: usize = 11usize

§

impl IndexEnum for SamplerBorderColor

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for SamplerRepeatMode

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for StencilOperation

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for TextureSamples

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for TextureSwizzle

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::rendering_device::TextureType

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for UniformType

§

const ENUMERATOR_COUNT: usize = 10usize

§

impl IndexEnum for godot::engine::rendering_server::ArrayCustomFormat

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::rendering_server::ArrayType

§

const ENUMERATOR_COUNT: usize = 13usize

§

impl IndexEnum for CanvasItemTextureFilter

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for CanvasItemTextureRepeat

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for CanvasLightShadowFilter

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::rendering_server::DecalTexture

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for EnvironmentBg

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for EnvironmentSdfgiFramesToConverge

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for EnvironmentSdfgiFramesToUpdateLight

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for EnvironmentSdfgiRayCount

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for FogVolumeShape

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for GlobalShaderParameterType

§

const ENUMERATOR_COUNT: usize = 28usize

§

impl IndexEnum for InstanceFlags

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for LightParam

§

const ENUMERATOR_COUNT: usize = 21usize

§

impl IndexEnum for ParticlesCollisionHeightfieldResolution

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for PrimitiveType

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for ShaderMode

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for ShadowQuality

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for ViewportEnvironmentMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportMsaa

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for ViewportRenderInfo

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportRenderInfoType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportScaling3DMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportScreenSpaceAa

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for ViewportSdfOversize

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for ViewportSdfScale

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportVrsMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ViewportVrsUpdateMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::rich_text_label::MenuItems

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for CodeCompletionKind

§

const ENUMERATOR_COUNT: usize = 10usize

§

impl IndexEnum for LookupResultType

§

const ENUMERATOR_COUNT: usize = 9usize

§

impl IndexEnum for RadianceSize

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::slider_joint_3d::Param

§

const ENUMERATOR_COUNT: usize = 22usize

§

impl IndexEnum for godot::engine::sprite_base_3d::DrawFlags

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for CustomFormat

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for AlignmentMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for CloseButtonDisplayPolicy

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for TabPosition

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::text_edit::MenuItems

§

const ENUMERATOR_COUNT: usize = 30usize

§

impl IndexEnum for FontLcdSubpixelLayout

§

const ENUMERATOR_COUNT: usize = 5usize

§

impl IndexEnum for SpacingType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for DataType

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for TileAnimationMode

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for DefaultCanvasItemTextureFilter

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for DefaultCanvasItemTextureRepeat

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for Msaa

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for PositionalShadowAtlasQuadrantSubdiv

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for RenderInfo

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for RenderInfoType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for Scaling3DMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ScreenSpaceAa

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for SdfOversize

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for SdfScale

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for VrsMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for VrsUpdateMode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for Type

§

const ENUMERATOR_COUNT: usize = 10usize

§

impl IndexEnum for VaryingMode

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for VaryingType

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for PortType

§

const ENUMERATOR_COUNT: usize = 9usize

§

impl IndexEnum for BillboardType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_clamp::OpType

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::visual_shader_node_color_func::Function

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_color_op::Operator

§

const ENUMERATOR_COUNT: usize = 9usize

§

impl IndexEnum for ComparisonType

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for Condition

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_compare::Function

§

const ENUMERATOR_COUNT: usize = 6usize

§

impl IndexEnum for godot::engine::visual_shader_node_cubemap::Source

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_cubemap::TextureType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_derivative_func::Function

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_derivative_func::OpType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for Precision

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_float_func::Function

§

const ENUMERATOR_COUNT: usize = 32usize

§

impl IndexEnum for godot::engine::visual_shader_node_float_parameter::Hint

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_int_func::Function

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_int_parameter::Hint

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_is::Function

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_mix::OpType

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::visual_shader_node_multiply_add::OpType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for Qualifier

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_particle_accelerator::Mode

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_particle_randomness::OpType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_sample_3d::Source

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_smooth_step::OpType

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::visual_shader_node_step::OpType

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::visual_shader_node_switch::OpType

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::visual_shader_node_texture::Source

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::visual_shader_node_texture::TextureType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for ColorDefault

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_texture_parameter::TextureFilter

§

const ENUMERATOR_COUNT: usize = 7usize

§

impl IndexEnum for godot::engine::visual_shader_node_texture_parameter::TextureRepeat

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for TextureSource

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_texture_parameter::TextureType

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_transform_func::Function

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_transform_op::Operator

§

const ENUMERATOR_COUNT: usize = 9usize

§

impl IndexEnum for godot::engine::visual_shader_node_transform_vec_mult::Operator

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::visual_shader_node_u_int_func::Function

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_uv_func::Function

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for godot::engine::visual_shader_node_vector_base::OpType

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for godot::engine::visual_shader_node_vector_func::Function

§

const ENUMERATOR_COUNT: usize = 33usize

§

impl IndexEnum for Subdiv

§

const ENUMERATOR_COUNT: usize = 4usize

§

impl IndexEnum for godot::engine::window::Flags

§

const ENUMERATOR_COUNT: usize = 8usize

§

impl IndexEnum for godot::engine::xr_body_modifier_3d::BoneUpdate

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for Joint

§

const ENUMERATOR_COUNT: usize = 76usize

§

impl IndexEnum for BlendShapeEntry

§

const ENUMERATOR_COUNT: usize = 143usize

§

impl IndexEnum for godot::engine::xr_hand_modifier_3d::BoneUpdate

§

const ENUMERATOR_COUNT: usize = 2usize

§

impl IndexEnum for HandJoint

§

const ENUMERATOR_COUNT: usize = 26usize

§

impl IndexEnum for HandTrackingSource

§

const ENUMERATOR_COUNT: usize = 3usize

§

impl IndexEnum for TrackerHand

§

const ENUMERATOR_COUNT: usize = 3usize