bevy_reflect/impls/
smol_str.rs

1use 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    Default,
10    Serialize,
11    Deserialize,
12));
13
14#[cfg(test)]
15mod tests {
16    use crate::{FromReflect, PartialReflect};
17    use smol_str::SmolStr;
18
19    #[test]
20    fn should_partial_eq_smolstr() {
21        let a: &dyn PartialReflect = &SmolStr::new("A");
22        let a2: &dyn PartialReflect = &SmolStr::new("A");
23        let b: &dyn PartialReflect = &SmolStr::new("B");
24        assert_eq!(Some(true), a.reflect_partial_eq(a2));
25        assert_eq!(Some(false), a.reflect_partial_eq(b));
26    }
27
28    #[test]
29    fn smolstr_should_from_reflect() {
30        let smolstr = SmolStr::new("hello_world.rs");
31        let output = <SmolStr as FromReflect>::from_reflect(&smolstr);
32        assert_eq!(Some(smolstr), output);
33    }
34}