Skip to content

Commit

Permalink
Added GetTypeRegistration impl for reflected tuples
Browse files Browse the repository at this point in the history
  • Loading branch information
MrGVSV committed May 2, 2022
1 parent 45d2c78 commit 99ceab0
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions crates/bevy_reflect/src/tuple.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use crate::{
serde::Serializable, FromReflect, FromType, GetTypeRegistration, Reflect, ReflectDeserialize,
ReflectMut, ReflectRef, TypeRegistration,
};
use serde::Deserialize;
use std::any::Any;

use crate::{serde::Serializable, FromReflect, Reflect, ReflectMut, ReflectRef};

/// A reflected Rust tuple.
///
/// This trait is automatically implemented for arbitrary tuples of up to 12
Expand Down Expand Up @@ -418,6 +421,14 @@ macro_rules! impl_reflect_tuple {
}
}

impl<$($name: Reflect + for<'de> Deserialize<'de>),*> GetTypeRegistration for ($($name,)*) {
fn get_type_registration() -> TypeRegistration {
let mut registration = TypeRegistration::of::<($($name,)*)>();
registration.insert::<ReflectDeserialize>(FromType::<($($name,)*)>::from_type());
registration
}
}

impl<$($name: FromReflect),*> FromReflect for ($($name,)*)
{
fn from_reflect(reflect: &dyn Reflect) -> Option<Self> {
Expand Down

0 comments on commit 99ceab0

Please sign in to comment.