bevy_reflect/impls/
smol_str.rs1use crate::{std_traits::ReflectDefault, ReflectDeserialize, ReflectSerialize};
2use bevy_reflect_derive::impl_reflect_opaque;
3
4impl_reflect_opaque!(::smol_str::SmolStr(
5 Clone,
6 Debug,
7 Hash,
8 PartialEq,
9 PartialOrd,
10 Default,
11 Serialize,
12 Deserialize,
13));
14
15#[cfg(test)]
16mod tests {
17 use crate::{FromReflect, PartialReflect};
18 use smol_str::SmolStr;
19
20 #[test]
21 fn should_partial_eq_smolstr() {
22 let a: &dyn PartialReflect = &SmolStr::new("A");
23 let a2: &dyn PartialReflect = &SmolStr::new("A");
24 let b: &dyn PartialReflect = &SmolStr::new("B");
25 assert_eq!(Some(true), a.reflect_partial_eq(a2));
26 assert_eq!(Some(false), a.reflect_partial_eq(b));
27 }
28
29 #[test]
30 fn smolstr_should_from_reflect() {
31 let smolstr = SmolStr::new("hello_world.rs");
32 let output = <SmolStr as FromReflect>::from_reflect(&smolstr);
33 assert_eq!(Some(smolstr), output);
34 }
35}