diff --git a/fyrox-core-derive/src/inspect.rs b/fyrox-core-derive/src/inspect.rs index bd1bb0329..645cf330a 100644 --- a/fyrox-core-derive/src/inspect.rs +++ b/fyrox-core-derive/src/inspect.rs @@ -9,7 +9,9 @@ use quote::quote; use syn::*; pub fn impl_inspect(ast: DeriveInput) -> TokenStream2 { - let ty_args = args::TypeArgs::from_derive_input(&ast).unwrap(); + let mut ty_args = args::TypeArgs::from_derive_input(&ast).unwrap(); + ty_args.validate(); + match &ty_args.data { ast::Data::Struct(ref field_args) => self::impl_inspect_struct(&ty_args, field_args), ast::Data::Enum(ref variant_args) => self::impl_inspect_enum(&ty_args, variant_args), diff --git a/fyrox-core-derive/src/inspect/args.rs b/fyrox-core-derive/src/inspect/args.rs index 0cda68596..a81623efa 100644 --- a/fyrox-core-derive/src/inspect/args.rs +++ b/fyrox-core-derive/src/inspect/args.rs @@ -16,6 +16,20 @@ pub struct TypeArgs { pub data: ast::Data, } +impl TypeArgs { + pub fn validate(&mut self) { + match &mut self.data { + ast::Data::Enum(vs) => { + vs.iter_mut() + .for_each(|v| v.fields.fields.iter_mut().for_each(|f| f.validate())); + } + ast::Data::Struct(s) => { + s.fields.iter_mut().for_each(|f| f.validate()); + } + } + } +} + /// Parsed from struct's or enum variant's field /// /// NOTE: `#[derive(Inspect)]` is non-recursive by default. @@ -38,11 +52,17 @@ pub struct FieldArgs { #[darling(default)] pub display_name: Option, - /// `#[inspect(getter = "")]` + /// `#[inspect(getter = "")]` /// - /// Convert the field reference to another reference + /// Method call syntax for converting the field reference to another reference #[darling(default)] - pub getter: Option, + pub getter: Option, + + /// `#[inspect(deref)]` + /// + /// Sets `getter` field with `deref()` + #[darling(default)] + pub deref: bool, /// `#[inspect(read_only)]` /// @@ -87,6 +107,18 @@ pub struct FieldArgs { pub is_modified: Option, } +impl FieldArgs { + pub fn validate(&mut self) { + if self.deref { + assert!(self.getter.is_none(), "can't use both `deref` and `getter`"); + + if self.deref { + self.getter = Some(parse_quote!(deref())); + } + } + } +} + #[derive(FromVariant, Clone)] #[darling(attributes(inspect))] pub struct VariantArgs { diff --git a/fyrox-core-derive/src/inspect/utils.rs b/fyrox-core-derive/src/inspect/utils.rs index cbbe3ed13..89f26d1c8 100644 --- a/fyrox-core-derive/src/inspect/utils.rs +++ b/fyrox-core-derive/src/inspect/utils.rs @@ -206,8 +206,7 @@ fn quote_field_prop( let getter = match &field.getter { // use custom getter function to retrieve the target reference Some(getter) => { - let getter: Path = parse_str(getter).expect("can't parse `getter` as a path"); - quote! { #getter(#field_ref) } + quote! { (#field_ref).#getter } } // default: get reference of the field None => field_ref.clone(), diff --git a/fyrox-core-derive/src/reflect/args.rs b/fyrox-core-derive/src/reflect/args.rs index 1720406cc..b4a4c6703 100644 --- a/fyrox-core-derive/src/reflect/args.rs +++ b/fyrox-core-derive/src/reflect/args.rs @@ -108,7 +108,7 @@ pub struct FieldArgs { /// `#[reflect(deref)]` /// - /// Delegates most of the `Reflect` implementations to the deref type. + /// Sets `field` and `field_mut` attributes with `deref()` and `deref_mut()` #[darling(default)] pub deref: bool, @@ -130,7 +130,7 @@ impl FieldArgs { if self.deref { assert!( self.field.is_none() || self.field_mut.is_none(), - "use either `deref` or `field` + `field_mut`" + "can't use both `deref` and `field` + `field_mut`" ); } diff --git a/fyrox-core-derive/tests/it/inspect.rs b/fyrox-core-derive/tests/it/inspect.rs index f5a2ba892..dfb6e7e78 100644 --- a/fyrox-core-derive/tests/it/inspect.rs +++ b/fyrox-core-derive/tests/it/inspect.rs @@ -279,19 +279,31 @@ fn inspect_with_custom_getter() { } #[derive(Inspect, Reflect)] - struct A(#[inspect(getter = "Deref::deref")] D); + struct A( + #[inspect(getter = "deref()")] D, + #[inspect(deref)] D, + ); - let a = A(D(10)); + let a = A(D(10), D(11)); assert_eq!( a.properties(), - vec![PropertyInfo { - owner_type_id: TypeId::of::(), - name: "0", - display_name: "0", - value: &*a.0, - ..default_prop() - }] + vec![ + PropertyInfo { + owner_type_id: TypeId::of::(), + name: "0", + display_name: "0", + value: &*a.0, + ..default_prop() + }, + PropertyInfo { + owner_type_id: TypeId::of::(), + name: "1", + display_name: "1", + value: &*a.1, + ..default_prop() + } + ] ); } diff --git a/src/scene/base.rs b/src/scene/base.rs index 6b5f8f8b9..5e762f64a 100644 --- a/src/scene/base.rs +++ b/src/scene/base.rs @@ -311,13 +311,13 @@ pub struct Base { #[reflect(hidden)] pub(crate) script_message_sender: Option>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) name: TemplateVariable, pub(crate) local_transform: Transform, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] visibility: TemplateVariable, @@ -327,33 +327,33 @@ pub struct Base { #[reflect(hidden)] pub(crate) lifetime: TemplateVariable>, - #[inspect(min_value = 0.0, max_value = 1.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, max_value = 1.0, step = 0.1, deref)] #[reflect(deref)] depth_offset: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] lod_group: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] mobility: TemplateVariable, #[reflect(deref)] - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] tag: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] cast_shadows: TemplateVariable, /// A set of custom properties that can hold almost any data. It can be used to set additional /// properties to scene nodes. - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub properties: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] frustum_culling: TemplateVariable, diff --git a/src/scene/camera.rs b/src/scene/camera.rs index ebc893f09..2847aee49 100644 --- a/src/scene/camera.rs +++ b/src/scene/camera.rs @@ -260,35 +260,35 @@ impl Default for Exposure { pub struct Camera { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] projection: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] viewport: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] enabled: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(field = "as_ref()?.deref()", field_mut = "as_mut()?.deref_mut()")] sky_box: TemplateVariable>>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] environment: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] exposure: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color_grading_lut: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color_grading_enabled: TemplateVariable, diff --git a/src/scene/collider.rs b/src/scene/collider.rs index 3e5346ba8..f5eadeedc 100644 --- a/src/scene/collider.rs +++ b/src/scene/collider.rs @@ -475,39 +475,39 @@ impl ColliderShape { pub struct Collider { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) shape: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) friction: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) density: TemplateVariable>, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) restitution: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) is_sensor: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) collision_groups: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) solver_groups: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) friction_combine_rule: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) restitution_combine_rule: TemplateVariable, diff --git a/src/scene/decal.rs b/src/scene/decal.rs index a825d08b3..c08f03ec0 100644 --- a/src/scene/decal.rs +++ b/src/scene/decal.rs @@ -90,19 +90,19 @@ use std::ops::{Deref, DerefMut}; pub struct Decal { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] diffuse_texture: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] normal_texture: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color: TemplateVariable, - #[inspect(min_value = 0.0, getter = "Deref::deref")] + #[inspect(min_value = 0.0, deref)] #[reflect(deref)] layer: TemplateVariable, } diff --git a/src/scene/dim2/collider.rs b/src/scene/dim2/collider.rs index 461b575ba..2607228dd 100644 --- a/src/scene/dim2/collider.rs +++ b/src/scene/dim2/collider.rs @@ -245,39 +245,39 @@ impl ColliderShape { pub struct Collider { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) shape: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) friction: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) density: TemplateVariable>, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) restitution: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) is_sensor: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) collision_groups: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) solver_groups: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) friction_combine_rule: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) restitution_combine_rule: TemplateVariable, diff --git a/src/scene/dim2/joint.rs b/src/scene/dim2/joint.rs index d6b540ee5..f55e20f42 100644 --- a/src/scene/dim2/joint.rs +++ b/src/scene/dim2/joint.rs @@ -118,19 +118,19 @@ impl Default for JointParams { pub struct Joint { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) params: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body1: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body2: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[visit(optional)] // Backward compatibility #[reflect(deref)] pub(crate) contacts_enabled: TemplateVariable, diff --git a/src/scene/dim2/rectangle.rs b/src/scene/dim2/rectangle.rs index af0aadc15..843839641 100644 --- a/src/scene/dim2/rectangle.rs +++ b/src/scene/dim2/rectangle.rs @@ -104,15 +104,15 @@ use std::ops::{Deref, DerefMut}; pub struct Rectangle { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] texture: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] uv_rect: TemplateVariable>, } diff --git a/src/scene/dim2/rigidbody.rs b/src/scene/dim2/rigidbody.rs index 5257a3eb0..c36cf3898 100644 --- a/src/scene/dim2/rigidbody.rs +++ b/src/scene/dim2/rigidbody.rs @@ -68,51 +68,51 @@ pub(crate) enum ApplyAction { pub struct RigidBody { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) lin_vel: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ang_vel: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) lin_damping: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ang_damping: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body_type: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) mass: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) rotation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) translation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ccd_enabled: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) can_sleep: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) dominance: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) gravity_scale: TemplateVariable, diff --git a/src/scene/joint.rs b/src/scene/joint.rs index 2b86c8022..90da4ea36 100644 --- a/src/scene/joint.rs +++ b/src/scene/joint.rs @@ -170,19 +170,19 @@ impl Default for JointParams { pub struct Joint { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) params: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body1: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body2: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] #[visit(optional)] // Backward compatibility pub(crate) contacts_enabled: TemplateVariable, diff --git a/src/scene/light/directional.rs b/src/scene/light/directional.rs index 7a1b7940b..b56e0aa74 100644 --- a/src/scene/light/directional.rs +++ b/src/scene/light/directional.rs @@ -109,7 +109,7 @@ impl CsmOptions { pub struct DirectionalLight { base_light: BaseLight, /// See [`CsmOptions`]. - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub csm_options: TemplateVariable, } diff --git a/src/scene/light/mod.rs b/src/scene/light/mod.rs index b74e3a6de..de56cabb6 100644 --- a/src/scene/light/mod.rs +++ b/src/scene/light/mod.rs @@ -58,24 +58,24 @@ pub const DEFAULT_SCATTER_B: f32 = 0.03; pub struct BaseLight { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] cast_shadows: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[visit(rename = "ScatterFactor")] #[reflect(deref)] scatter: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] scatter_enabled: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.1, deref)] #[reflect(deref)] intensity: TemplateVariable, } diff --git a/src/scene/light/point.rs b/src/scene/light/point.rs index 7c5b143ab..e298b1a33 100644 --- a/src/scene/light/point.rs +++ b/src/scene/light/point.rs @@ -45,11 +45,11 @@ use std::ops::{Deref, DerefMut}; pub struct PointLight { base_light: BaseLight, - #[inspect(min_value = 0.0, step = 0.001, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.001, deref)] #[reflect(deref)] shadow_bias: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.1, deref)] #[reflect(deref)] radius: TemplateVariable, } diff --git a/src/scene/light/spot.rs b/src/scene/light/spot.rs index 331e898e0..3e674d209 100644 --- a/src/scene/light/spot.rs +++ b/src/scene/light/spot.rs @@ -51,28 +51,23 @@ use std::ops::{Deref, DerefMut}; pub struct SpotLight { base_light: BaseLight, - #[inspect( - min_value = 0.0, - max_value = 3.14159, - step = 0.1, - getter = "Deref::deref" - )] + #[inspect(min_value = 0.0, max_value = 3.14159, step = 0.1, deref)] #[reflect(deref)] hotspot_cone_angle: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.1, deref)] #[reflect(deref)] falloff_angle_delta: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.001, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.001, deref)] #[reflect(deref)] shadow_bias: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.1, deref)] #[reflect(deref)] distance: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] cookie_texture: TemplateVariable>, } diff --git a/src/scene/mesh/mod.rs b/src/scene/mesh/mod.rs index 5c2469d43..1a8409082 100644 --- a/src/scene/mesh/mod.rs +++ b/src/scene/mesh/mod.rs @@ -94,15 +94,15 @@ pub struct Mesh { #[visit(rename = "Common")] base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] surfaces: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] render_path: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] decal_layer_index: TemplateVariable, diff --git a/src/scene/particle_system/mod.rs b/src/scene/particle_system/mod.rs index 20ae7445b..818952509 100644 --- a/src/scene/particle_system/mod.rs +++ b/src/scene/particle_system/mod.rs @@ -149,28 +149,28 @@ pub struct ParticleSystem { base: Base, /// List of emitters of the particle system. - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub emitters: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] texture: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] acceleration: TemplateVariable>, #[visit(rename = "ColorGradient")] - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color_over_lifetime: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] soft_boundary_sharpness_factor: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] enabled: TemplateVariable, diff --git a/src/scene/rigidbody.rs b/src/scene/rigidbody.rs index 79f0c452c..a43d6fe97 100644 --- a/src/scene/rigidbody.rs +++ b/src/scene/rigidbody.rs @@ -144,59 +144,59 @@ pub(crate) enum ApplyAction { pub struct RigidBody { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) lin_vel: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ang_vel: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) lin_damping: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ang_damping: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) body_type: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pub(crate) mass: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) x_rotation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) y_rotation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) z_rotation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) translation_locked: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) ccd_enabled: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) can_sleep: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) dominance: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) gravity_scale: TemplateVariable, diff --git a/src/scene/sound/effect.rs b/src/scene/sound/effect.rs index 58c52ca75..3ed93315a 100644 --- a/src/scene/sound/effect.rs +++ b/src/scene/sound/effect.rs @@ -32,13 +32,13 @@ pub struct EffectInput { /// Base effect contains common properties for every effect (gain, inputs, etc.) #[derive(Visit, Inspect, Reflect, Debug)] pub struct BaseEffect { - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) name: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) gain: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) inputs: TemplateVariable>, #[visit(skip)] @@ -191,16 +191,16 @@ impl BaseEffectBuilder { #[derive(Visit, Inspect, Reflect, Debug)] pub struct ReverbEffect { pub(crate) base: BaseEffect, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) dry: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) wet: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) fc: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) decay_time: TemplateVariable, } diff --git a/src/scene/sound/mod.rs b/src/scene/sound/mod.rs index 12f8a0a76..1983e2120 100644 --- a/src/scene/sound/mod.rs +++ b/src/scene/sound/mod.rs @@ -51,40 +51,40 @@ pub mod listener; #[derive(Visit, Inspect, Reflect, Debug)] pub struct Sound { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] buffer: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] play_once: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] gain: TemplateVariable, - #[inspect(min_value = -1.0, max_value = 1.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = -1.0, max_value = 1.0, step = 0.05, deref)] #[reflect(deref)] panning: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] pub(crate) status: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] looping: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] pitch: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] radius: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] max_distance: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.05, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.05, deref)] #[reflect(deref)] rolloff_factor: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] playback_time: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] spatial_blend: TemplateVariable, #[inspect(skip)] diff --git a/src/scene/sprite.rs b/src/scene/sprite.rs index b63fd3a09..38408903a 100644 --- a/src/scene/sprite.rs +++ b/src/scene/sprite.rs @@ -67,16 +67,16 @@ use std::ops::{Deref, DerefMut}; #[derive(Debug, Inspect, Reflect, Clone, Visit)] pub struct Sprite { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] texture: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] color: TemplateVariable, - #[inspect(min_value = 0.0, step = 0.1, getter = "Deref::deref")] + #[inspect(min_value = 0.0, step = 0.1, deref)] #[reflect(deref)] size: TemplateVariable, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] rotation: TemplateVariable, } diff --git a/src/scene/terrain.rs b/src/scene/terrain.rs index bf7263078..536889c03 100644 --- a/src/scene/terrain.rs +++ b/src/scene/terrain.rs @@ -259,11 +259,11 @@ pub struct TerrainRayCastResult { pub struct Terrain { base: Base, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] layers: TemplateVariable>, - #[inspect(getter = "Deref::deref")] + #[inspect(deref)] #[reflect(deref)] decal_layer_index: TemplateVariable, diff --git a/src/scene/transform.rs b/src/scene/transform.rs index d22b37d35..6667474bc 100644 --- a/src/scene/transform.rs +++ b/src/scene/transform.rs @@ -71,7 +71,7 @@ pub struct Transform { dirty: Cell, #[inspect( - getter = "Deref::deref", + deref, description = "Local scale of the transform", is_modified = "is_modified" )] @@ -79,7 +79,7 @@ pub struct Transform { local_scale: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Local position of the transform", is_modified = "is_modified" )] @@ -87,7 +87,7 @@ pub struct Transform { local_position: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Local rotation of the transform", is_modified = "is_modified" )] @@ -95,7 +95,7 @@ pub struct Transform { local_rotation: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Pre rotation of the transform. Applied before local rotation.", is_modified = "is_modified" )] @@ -103,7 +103,7 @@ pub struct Transform { pre_rotation: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Post rotation of the transform. Applied after local rotation.", is_modified = "is_modified" )] @@ -111,7 +111,7 @@ pub struct Transform { post_rotation: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Rotation offset of the transform.", is_modified = "is_modified" )] @@ -119,7 +119,7 @@ pub struct Transform { rotation_offset: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Rotation pivot of the transform.", is_modified = "is_modified" )] @@ -127,7 +127,7 @@ pub struct Transform { rotation_pivot: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Scale offset of the transform.", is_modified = "is_modified" )] @@ -135,7 +135,7 @@ pub struct Transform { scaling_offset: TemplateVariable>, #[inspect( - getter = "Deref::deref", + deref, description = "Scale pivot of the transform.", is_modified = "is_modified" )]