Skip to content

Commit b0720cb

Browse files
committed
Prefer reflect_type_info for dyn Reflect values
1 parent 8d95a09 commit b0720cb

File tree

3 files changed

+15
-20
lines changed

3 files changed

+15
-20
lines changed

crates/bevy_reflect/src/lib.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,7 +1632,7 @@ mod tests {
16321632

16331633
// TypeInfo (instance)
16341634
let value: &dyn Reflect = &123_i32;
1635-
let info = value.get_represented_type_info().unwrap();
1635+
let info = value.reflect_type_info();
16361636
assert!(info.is::<i32>());
16371637

16381638
// Struct
@@ -1653,7 +1653,7 @@ mod tests {
16531653
assert_eq!(usize::type_path(), info.field_at(1).unwrap().type_path());
16541654

16551655
let value: &dyn Reflect = &MyStruct { foo: 123, bar: 321 };
1656-
let info = value.get_represented_type_info().unwrap();
1656+
let info = value.reflect_type_info();
16571657
assert!(info.is::<MyStruct>());
16581658

16591659
// Struct (generic)
@@ -1675,7 +1675,7 @@ mod tests {
16751675
foo: String::from("Hello!"),
16761676
bar: 321,
16771677
};
1678-
let info = value.get_represented_type_info().unwrap();
1678+
let info = value.reflect_type_info();
16791679
assert!(info.is::<MyGenericStruct<String>>());
16801680

16811681
// Struct (dynamic field)
@@ -1705,7 +1705,7 @@ mod tests {
17051705
foo: DynamicStruct::default(),
17061706
bar: 321,
17071707
};
1708-
let info = value.get_represented_type_info().unwrap();
1708+
let info = value.reflect_type_info();
17091709
assert!(info.is::<MyDynamicStruct>());
17101710

17111711
// Tuple Struct
@@ -1731,7 +1731,7 @@ mod tests {
17311731
assert!(info.field_at(1).unwrap().type_info().unwrap().is::<f32>());
17321732

17331733
let value: &dyn Reflect = &(123_u32, 1.23_f32, String::from("Hello!"));
1734-
let info = value.get_represented_type_info().unwrap();
1734+
let info = value.reflect_type_info();
17351735
assert!(info.is::<MyTuple>());
17361736

17371737
// List
@@ -1746,7 +1746,7 @@ mod tests {
17461746
assert_eq!(usize::type_path(), info.item_ty().path());
17471747

17481748
let value: &dyn Reflect = &vec![123_usize];
1749-
let info = value.get_represented_type_info().unwrap();
1749+
let info = value.reflect_type_info();
17501750
assert!(info.is::<MyList>());
17511751

17521752
// List (SmallVec)
@@ -1763,7 +1763,7 @@ mod tests {
17631763

17641764
let value: MySmallVec = smallvec::smallvec![String::default(); 2];
17651765
let value: &dyn Reflect = &value;
1766-
let info = value.get_represented_type_info().unwrap();
1766+
let info = value.reflect_type_info();
17671767
assert!(info.is::<MySmallVec>());
17681768
}
17691769

@@ -1779,7 +1779,7 @@ mod tests {
17791779
assert_eq!(3, info.capacity());
17801780

17811781
let value: &dyn Reflect = &[1usize, 2usize, 3usize];
1782-
let info = value.get_represented_type_info().unwrap();
1782+
let info = value.reflect_type_info();
17831783
assert!(info.is::<MyArray>());
17841784

17851785
// Cow<'static, str>
@@ -1791,7 +1791,7 @@ mod tests {
17911791
assert_eq!(std::any::type_name::<MyCowStr>(), info.type_path());
17921792

17931793
let value: &dyn Reflect = &Cow::<'static, str>::Owned("Hello!".to_string());
1794-
let info = value.get_represented_type_info().unwrap();
1794+
let info = value.reflect_type_info();
17951795
assert!(info.is::<MyCowStr>());
17961796

17971797
// Cow<'static, [u8]>
@@ -1806,7 +1806,7 @@ mod tests {
18061806
assert_eq!(std::any::type_name::<u8>(), info.item_ty().path());
18071807

18081808
let value: &dyn Reflect = &Cow::<'static, [u8]>::Owned(vec![0, 1, 2, 3]);
1809-
let info = value.get_represented_type_info().unwrap();
1809+
let info = value.reflect_type_info();
18101810
assert!(info.is::<MyCowSlice>());
18111811

18121812
// Map
@@ -1824,7 +1824,7 @@ mod tests {
18241824
assert_eq!(f32::type_path(), info.value_ty().path());
18251825

18261826
let value: &dyn Reflect = &MyMap::new();
1827-
let info = value.get_represented_type_info().unwrap();
1827+
let info = value.reflect_type_info();
18281828
assert!(info.is::<MyMap>());
18291829

18301830
// Value
@@ -1836,7 +1836,7 @@ mod tests {
18361836
assert_eq!(MyValue::type_path(), info.type_path());
18371837

18381838
let value: &dyn Reflect = &String::from("Hello!");
1839-
let info = value.get_represented_type_info().unwrap();
1839+
let info = value.reflect_type_info();
18401840
assert!(info.is::<MyValue>());
18411841
}
18421842

crates/bevy_reflect/src/serde/ser/serializable.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,7 @@ impl<'a> Serializable<'a> {
3030
))
3131
})?;
3232

33-
let info = value.get_represented_type_info().ok_or_else(|| {
34-
make_custom_error(format_args!(
35-
"type `{}` does not represent any type",
36-
value.reflect_type_path(),
37-
))
38-
})?;
33+
let info = value.reflect_type_info();
3934

4035
let registration = type_registry.get(info.type_id()).ok_or_else(|| {
4136
make_custom_error(format_args!(

examples/reflection/type_data.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ fn main() {
8080
registry.register_type_data::<Zombie, ReflectDamageable>();
8181

8282
// Then at any point we can retrieve the type data from the registry:
83-
let type_id = value.get_represented_type_info().unwrap().type_id();
83+
let type_id = value.reflect_type_info().type_id();
8484
let reflect_damageable = registry
8585
.get_type_data::<ReflectDamageable>(type_id)
8686
.unwrap();
@@ -133,7 +133,7 @@ fn main() {
133133
// Now we can use `ReflectHealth` to convert `dyn Reflect` into `dyn Health`:
134134
let value: Box<dyn Reflect> = Box::new(Skeleton { health: 50 });
135135

136-
let type_id = value.get_represented_type_info().unwrap().type_id();
136+
let type_id = value.reflect_type_info().type_id();
137137
let reflect_health = registry.get_type_data::<ReflectHealth>(type_id).unwrap();
138138

139139
// Type data generated by `#[reflect_trait]` comes with a `get`, `get_mut`, and `get_boxed` method,

0 commit comments

Comments
 (0)