Implement ReflectValue serialization for Duration (#3318)
# Objective Resolves #3277 Currenty if we try to serialize a scene that contains a `Duration` (which is very common, since `Timer` contains one), we get an error saying: > Type 'core::time::Duration' does not support ReflectValue serialization ## Solution Let `Duration` implement `SerializeValue`. Co-authored-by: Jonathan Cornaz <jcornaz@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									8a8293b266
								
							
						
					
					
						commit
						d07c8a8fa7
					
				| @ -34,7 +34,7 @@ impl_reflect_value!(String(Hash, PartialEq, Serialize, Deserialize)); | |||||||
| impl_reflect_value!(Option<T: Serialize + Clone + for<'de> Deserialize<'de> + Reflect + 'static>(Serialize, Deserialize)); | impl_reflect_value!(Option<T: Serialize + Clone + for<'de> Deserialize<'de> + Reflect + 'static>(Serialize, Deserialize)); | ||||||
| impl_reflect_value!(HashSet<T: Serialize + Hash + Eq + Clone + for<'de> Deserialize<'de> + Send + Sync + 'static>(Serialize, Deserialize)); | impl_reflect_value!(HashSet<T: Serialize + Hash + Eq + Clone + for<'de> Deserialize<'de> + Send + Sync + 'static>(Serialize, Deserialize)); | ||||||
| impl_reflect_value!(Range<T: Serialize + Clone + for<'de> Deserialize<'de> + Send + Sync + 'static>(Serialize, Deserialize)); | impl_reflect_value!(Range<T: Serialize + Clone + for<'de> Deserialize<'de> + Send + Sync + 'static>(Serialize, Deserialize)); | ||||||
| impl_reflect_value!(Duration); | impl_reflect_value!(Duration(Hash, PartialEq, Serialize, Deserialize)); | ||||||
| 
 | 
 | ||||||
| impl_from_reflect_value!(bool); | impl_from_reflect_value!(bool); | ||||||
| impl_from_reflect_value!(u8); | impl_from_reflect_value!(u8); | ||||||
| @ -364,3 +364,13 @@ impl FromReflect for Cow<'static, str> { | |||||||
|         Some(reflect.any().downcast_ref::<Cow<'static, str>>()?.clone()) |         Some(reflect.any().downcast_ref::<Cow<'static, str>>()?.clone()) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | #[cfg(test)] | ||||||
|  | mod tests { | ||||||
|  |     use crate::Reflect; | ||||||
|  | 
 | ||||||
|  |     #[test] | ||||||
|  |     fn can_serialize_duration() { | ||||||
|  |         assert!(std::time::Duration::ZERO.serializable().is_some()) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Jonathan Cornaz
						Jonathan Cornaz