mirror of
https://github.com/FyroxEngine/Fyrox.git
synced 2026-10-12 02:02:20 +00:00
removed Reflect::as_any/as_any_mut
- useless methods because can be replaced via `Reflect::as_reflect` + `as &dyn Reflect` cast
This commit is contained in:
@@ -869,30 +869,30 @@ impl TrackList {
|
||||
}
|
||||
ValueBinding::Property { name, .. } => node_ref.find_field(name, &mut |value| {
|
||||
if let Some(value) = value {
|
||||
value.as_any(&mut |any| {
|
||||
value.as_reflect(&mut |reflect| {
|
||||
let curves = track.data_container().curves_ref();
|
||||
if curves.len() == 1 {
|
||||
if let Some(scalar) = any_scalar_to_f32(any) {
|
||||
if let Some(scalar) = any_scalar_to_f32(reflect) {
|
||||
adder.add(&[scalar]);
|
||||
} else {
|
||||
err!("Unable to set {name} scalar property!");
|
||||
}
|
||||
} else if curves.len() == 2 {
|
||||
if let Some(vec2) = any_vec_to_f32::<2>(any) {
|
||||
if let Some(vec2) = any_vec_to_f32::<2>(reflect) {
|
||||
adder.add(vec2.as_slice())
|
||||
} else {
|
||||
err!("Unable to set {name} Vector2 property!");
|
||||
}
|
||||
} else if curves.len() == 3 {
|
||||
if let Some(vec3) = any_vec_to_f32::<3>(any) {
|
||||
if let Some(vec3) = any_vec_to_f32::<3>(reflect) {
|
||||
adder.add(vec3.as_slice())
|
||||
} else {
|
||||
err!("Unable to set {name} Vector3 property!");
|
||||
}
|
||||
} else if curves.len() == 4 {
|
||||
if let Some(vec4) = any_vec_to_f32::<4>(any) {
|
||||
if let Some(vec4) = any_vec_to_f32::<4>(reflect) {
|
||||
adder.add(vec4.as_slice())
|
||||
} else if let Some(quat) = any_quat_to_f32(any) {
|
||||
} else if let Some(quat) = any_quat_to_f32(reflect) {
|
||||
adder.add(quat.coords.as_slice())
|
||||
} else {
|
||||
err!(
|
||||
@@ -1104,7 +1104,8 @@ impl TrackList {
|
||||
node.resolve_path(&property_path.path, &mut |result| match result {
|
||||
Ok(property) => {
|
||||
let mut property_type = TypeId::of::<u32>();
|
||||
property.as_any(&mut |any| property_type = any.type_id());
|
||||
property
|
||||
.as_reflect(&mut |reflect| property_type = reflect.type_id());
|
||||
|
||||
let types = type_id_to_supported_type(property_type);
|
||||
|
||||
@@ -1410,7 +1411,7 @@ impl TrackList {
|
||||
node.resolve_path(&desc.path, &mut |result| match result {
|
||||
Ok(property) => {
|
||||
let mut property_type = TypeId::of::<u32>();
|
||||
property.as_any(&mut |any| property_type = any.type_id());
|
||||
property.as_reflect(&mut |reflect| property_type = reflect.type_id());
|
||||
|
||||
let types = type_id_to_supported_type(property_type);
|
||||
|
||||
@@ -1713,7 +1714,7 @@ impl TrackList {
|
||||
target.resolve_path(name, &mut |result| match result {
|
||||
Ok(value) => {
|
||||
let mut property_type = TypeId::of::<u32>();
|
||||
value.as_any(&mut |any| property_type = any.type_id());
|
||||
value.as_reflect(&mut |reflect| property_type = reflect.type_id());
|
||||
|
||||
if let Some((_, type_)) = type_id_to_supported_type(property_type) {
|
||||
if *value_type != type_ {
|
||||
|
||||
@@ -494,10 +494,10 @@ impl EditorPlugin for InspectorPlugin {
|
||||
can_clone = property.try_clone_box().is_some();
|
||||
|
||||
if let Some(value) = self.clipboard.as_ref() {
|
||||
value.as_any(&mut |value| {
|
||||
property.as_any(&mut |property| {
|
||||
value.as_reflect(&mut |reflect| {
|
||||
property.as_reflect(&mut |property| {
|
||||
can_paste =
|
||||
property.type_id() == value.type_id();
|
||||
property.type_id() == reflect.type_id();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -409,8 +409,8 @@ impl BoundValue {
|
||||
object_ref.resolve_path_mut(property_path, &mut |result| match result {
|
||||
Ok(property) => {
|
||||
let mut applied = false;
|
||||
property.as_any_mut(&mut |any| {
|
||||
applied = self.value.apply_to_any(any, value_type);
|
||||
property.as_reflect_mut(&mut |reflect| {
|
||||
applied = self.value.apply_to_any(reflect, value_type);
|
||||
});
|
||||
if applied {
|
||||
property.as_inheritable_variable_mut(&mut |var| {
|
||||
|
||||
@@ -518,14 +518,6 @@ fn gen_impl(
|
||||
|
||||
#set_field
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn ::core::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn ::core::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect_direct(&self) -> &dyn Reflect {
|
||||
self
|
||||
}
|
||||
|
||||
@@ -218,14 +218,6 @@ impl Reflect for DynTypeWrapper {
|
||||
self
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
@@ -184,14 +184,6 @@ impl<T: Reflect> Reflect for Handle<T> {
|
||||
self
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
@@ -192,16 +192,6 @@ where
|
||||
self
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect_direct(&self) -> &dyn Reflect {
|
||||
self
|
||||
}
|
||||
|
||||
@@ -185,16 +185,6 @@ macro_rules! impl_reflect_inner_mutability {
|
||||
Box::new(inner)
|
||||
}
|
||||
|
||||
fn as_any(&$self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
let guard = $acquire_lock_guard;
|
||||
(*guard).as_any(func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut $self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
let mut guard = $acquire_lock_guard;
|
||||
(*guard).as_any_mut(func)
|
||||
}
|
||||
|
||||
fn as_reflect(&$self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
let guard = $acquire_lock_guard;
|
||||
(*guard).as_reflect(func)
|
||||
|
||||
@@ -184,14 +184,6 @@ macro_rules! delegate_reflect {
|
||||
(*self).into_any()
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn std::any::Any)) {
|
||||
self.deref().as_any(func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn std::any::Any)) {
|
||||
self.deref_mut().as_any_mut(func)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn $crate::reflect::Reflect)) {
|
||||
self.deref().as_reflect(func)
|
||||
}
|
||||
@@ -354,14 +346,6 @@ macro_rules! blank_reflect {
|
||||
self
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn std::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn std::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn $crate::reflect::Reflect)) {
|
||||
func(self)
|
||||
}
|
||||
@@ -463,14 +447,6 @@ macro_rules! blank_reflect_ref {
|
||||
self
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn std::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn std::any::Any)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn $crate::reflect::Reflect)) {
|
||||
func(self)
|
||||
}
|
||||
|
||||
@@ -141,10 +141,6 @@ pub trait Reflect: Any + Debug {
|
||||
|
||||
fn into_any(self: Box<Self>) -> Box<dyn Any>;
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any));
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any));
|
||||
|
||||
fn as_reflect_direct(&self) -> &dyn Reflect;
|
||||
|
||||
fn as_reflect_mut_direct(&mut self) -> &mut dyn Reflect;
|
||||
@@ -313,12 +309,12 @@ impl dyn Reflect {
|
||||
|
||||
#[inline]
|
||||
pub fn downcast_ref<T: Reflect>(&self, func: &mut dyn FnMut(Option<&T>)) {
|
||||
self.as_any(&mut |any| func(any.downcast_ref::<T>()))
|
||||
self.as_reflect(&mut |reflect| func((reflect as &dyn Any).downcast_ref::<T>()))
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn downcast_mut<T: Reflect>(&mut self, func: &mut dyn FnMut(Option<&mut T>)) {
|
||||
self.as_any_mut(&mut |any| func(any.downcast_mut::<T>()))
|
||||
self.as_reflect_mut(&mut |reflect| func((reflect as &mut dyn Any).downcast_mut::<T>()))
|
||||
}
|
||||
|
||||
/// Tries to find the first field of the given type. This method internally uses
|
||||
@@ -779,16 +775,20 @@ pub trait GetField {
|
||||
|
||||
impl<R: Reflect> GetField for R {
|
||||
fn get_field<T: 'static>(&self, name: &str, func: &mut dyn FnMut(Option<&T>)) {
|
||||
self.find_field(name, &mut |field| match field {
|
||||
self.find_field(name, &mut |opt_field| match opt_field {
|
||||
None => func(None),
|
||||
Some(reflect) => reflect.as_any(&mut |any| func(any.downcast_ref())),
|
||||
Some(field) => {
|
||||
field.as_reflect(&mut |reflect| func((reflect as &dyn Any).downcast_ref()))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn get_field_mut<T: 'static>(&mut self, name: &str, func: &mut dyn FnMut(Option<&mut T>)) {
|
||||
self.find_field_mut(name, &mut |field| match field {
|
||||
self.find_field_mut(name, &mut |opt_field| match opt_field {
|
||||
None => func(None),
|
||||
Some(reflect) => reflect.as_any_mut(&mut |any| func(any.downcast_mut())),
|
||||
Some(field) => {
|
||||
field.as_reflect_mut(&mut |reflect| func((reflect as &mut dyn Any).downcast_mut()))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,16 +454,6 @@ where
|
||||
Box::new(self.value).into_any()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
self.value.as_any(func)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
self.value.as_any_mut(func)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
self.value.as_reflect(func)
|
||||
|
||||
+2
-10
@@ -1750,14 +1750,6 @@ mod test {
|
||||
Reflect::into_any(self.0)
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
Reflect::as_any(self.0.deref(), func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
Reflect::as_any_mut(self.0.deref_mut(), func)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
self.0.deref().as_reflect(func)
|
||||
}
|
||||
@@ -2332,8 +2324,8 @@ mod test {
|
||||
.unwrap()
|
||||
.transmute::<RigidBody>();
|
||||
let joint_copy = mapping.inner().get(&joint).cloned().unwrap();
|
||||
Reflect::as_any(&scene_graph.nodes[joint_copy], &mut |any| {
|
||||
let joint_copy_ref = any.downcast_ref::<Joint>().unwrap();
|
||||
scene_graph.nodes[joint_copy].as_reflect(&mut |reflect| {
|
||||
let joint_copy_ref = (reflect as &dyn Any).downcast_ref::<Joint>().unwrap();
|
||||
assert_eq!(joint_copy_ref.connected_body1, rigid_body_copy);
|
||||
assert_eq!(joint_copy_ref.connected_body2, rigid_body2_copy);
|
||||
});
|
||||
|
||||
@@ -77,6 +77,7 @@ use crate::{
|
||||
use bitflags::bitflags;
|
||||
use fxhash::{FxHashMap, FxHashSet};
|
||||
use fyrox_material::MaterialResourceExtension;
|
||||
use std::any::Any;
|
||||
use std::{
|
||||
any::TypeId,
|
||||
fmt::{Debug, Display, Formatter, Write},
|
||||
@@ -537,8 +538,8 @@ impl Graph {
|
||||
for (node_handle, node) in self.pair_iter() {
|
||||
(node as &dyn Reflect).apply_recursively(
|
||||
&mut |object| {
|
||||
object.as_any(&mut |any| {
|
||||
if let Some(handle) = any.downcast_ref::<Handle<Node>>() {
|
||||
object.as_reflect(&mut |reflect| {
|
||||
if let Some(handle) = (reflect as &dyn Any).downcast_ref::<Handle<Node>>() {
|
||||
if *handle == target {
|
||||
references.push(node_handle);
|
||||
}
|
||||
|
||||
@@ -611,14 +611,6 @@ impl Reflect for Node {
|
||||
Reflect::into_any(self.0)
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
Reflect::as_any(self.0.deref(), func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
Reflect::as_any_mut(self.0.deref_mut(), func)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
self.0.deref().as_reflect(func)
|
||||
}
|
||||
|
||||
@@ -763,14 +763,6 @@ impl Reflect for Script {
|
||||
self.instance.into_any()
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
self.instance.deref().as_any(func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
self.instance.deref_mut().as_any_mut(func)
|
||||
}
|
||||
|
||||
fn as_reflect(&self, func: &mut dyn FnMut(&dyn Reflect)) {
|
||||
self.instance.deref().as_reflect(func)
|
||||
}
|
||||
|
||||
@@ -130,14 +130,6 @@ impl Reflect for ResourceDataWrapper {
|
||||
self
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
self.deref().as_any(func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
self.deref_mut().as_any_mut(func)
|
||||
}
|
||||
|
||||
fn as_reflect_direct(&self) -> &dyn Reflect {
|
||||
self.deref().as_reflect_direct()
|
||||
}
|
||||
|
||||
@@ -291,17 +291,18 @@ impl PartialEq for ObjectValue {
|
||||
|
||||
impl ObjectValue {
|
||||
pub fn cast_value<T: 'static>(&self, func: &mut dyn FnMut(Option<&T>)) {
|
||||
(*self.value).as_any(&mut |any| func(any.downcast_ref::<T>()))
|
||||
(*self.value).as_reflect(&mut |reflect| func((reflect as &dyn Any).downcast_ref::<T>()))
|
||||
}
|
||||
|
||||
pub fn cast_clone<T: Clone + 'static>(&self, func: &mut dyn FnMut(Option<T>)) {
|
||||
(*self.value).as_any(&mut |any| func(any.downcast_ref::<T>().cloned()))
|
||||
(*self.value)
|
||||
.as_reflect(&mut |reflect| func((reflect as &dyn Any).downcast_ref::<T>().cloned()))
|
||||
}
|
||||
|
||||
pub fn try_override<T: Clone + 'static>(&self, value: &mut T) -> bool {
|
||||
let mut result = false;
|
||||
(*self.value).as_any(&mut |any| {
|
||||
if let Some(self_value) = any.downcast_ref::<T>() {
|
||||
(*self.value).as_reflect(&mut |reflect| {
|
||||
if let Some(self_value) = (reflect as &dyn Any).downcast_ref::<T>() {
|
||||
*value = self_value.clone();
|
||||
result = true;
|
||||
}
|
||||
@@ -582,8 +583,8 @@ impl Inspector {
|
||||
can_clone = field.try_clone_box().is_some();
|
||||
|
||||
if let Some(clipboard_value) = clipboard_value {
|
||||
clipboard_value.as_any(&mut |clipboard_value| {
|
||||
field.as_any(&mut |field| {
|
||||
clipboard_value.as_reflect(&mut |clipboard_value| {
|
||||
field.as_reflect(&mut |field| {
|
||||
can_paste = field.type_id() == clipboard_value.type_id();
|
||||
})
|
||||
});
|
||||
@@ -843,7 +844,7 @@ impl PartialEq for InspectorContext {
|
||||
|
||||
fn object_type_id(object: &dyn Reflect) -> TypeId {
|
||||
let mut object_type_id = None;
|
||||
object.as_any(&mut |any| object_type_id = Some(any.type_id()));
|
||||
object.as_reflect(&mut |reflect| object_type_id = Some(reflect.type_id()));
|
||||
object_type_id.unwrap()
|
||||
}
|
||||
|
||||
|
||||
@@ -301,14 +301,6 @@ impl Reflect for UiNode {
|
||||
Reflect::into_any(self.0)
|
||||
}
|
||||
|
||||
fn as_any(&self, func: &mut dyn FnMut(&dyn Any)) {
|
||||
Reflect::as_any(self.0.deref(), func)
|
||||
}
|
||||
|
||||
fn as_any_mut(&mut self, func: &mut dyn FnMut(&mut dyn Any)) {
|
||||
Reflect::as_any_mut(self.0.deref_mut(), func)
|
||||
}
|
||||
|
||||
fn as_reflect_direct(&self) -> &dyn Reflect {
|
||||
self.0.deref().as_reflect_direct()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user