bevy_reflect/impls/core/
num.rs1use crate::type_registry::{ReflectDeserialize, ReflectSerialize};
2use bevy_reflect_derive::impl_reflect_opaque;
3
4impl_reflect_opaque!(::core::num::NonZeroI128(
5 Clone,
6 Debug,
7 Hash,
8 PartialEq,
9 PartialOrd,
10 Serialize,
11 Deserialize
12));
13impl_reflect_opaque!(::core::num::NonZeroU128(
14 Clone,
15 Debug,
16 Hash,
17 PartialEq,
18 PartialOrd,
19 Serialize,
20 Deserialize
21));
22impl_reflect_opaque!(::core::num::NonZeroIsize(
23 Clone,
24 Debug,
25 Hash,
26 PartialEq,
27 PartialOrd,
28 Serialize,
29 Deserialize
30));
31impl_reflect_opaque!(::core::num::NonZeroUsize(
32 Clone,
33 Debug,
34 Hash,
35 PartialEq,
36 PartialOrd,
37 Serialize,
38 Deserialize
39));
40impl_reflect_opaque!(::core::num::NonZeroI64(
41 Clone,
42 Debug,
43 Hash,
44 PartialEq,
45 PartialOrd,
46 Serialize,
47 Deserialize
48));
49impl_reflect_opaque!(::core::num::NonZeroU64(
50 Clone,
51 Debug,
52 Hash,
53 PartialEq,
54 PartialOrd,
55 Serialize,
56 Deserialize
57));
58impl_reflect_opaque!(::core::num::NonZeroU32(
59 Clone,
60 Debug,
61 Hash,
62 PartialEq,
63 PartialOrd,
64 Serialize,
65 Deserialize
66));
67impl_reflect_opaque!(::core::num::NonZeroI32(
68 Clone,
69 Debug,
70 Hash,
71 PartialEq,
72 PartialOrd,
73 Serialize,
74 Deserialize
75));
76impl_reflect_opaque!(::core::num::NonZeroI16(
77 Clone,
78 Debug,
79 Hash,
80 PartialEq,
81 PartialOrd,
82 Serialize,
83 Deserialize
84));
85impl_reflect_opaque!(::core::num::NonZeroU16(
86 Clone,
87 Debug,
88 Hash,
89 PartialEq,
90 PartialOrd,
91 Serialize,
92 Deserialize
93));
94impl_reflect_opaque!(::core::num::NonZeroU8(
95 Clone,
96 Debug,
97 Hash,
98 PartialEq,
99 PartialOrd,
100 Serialize,
101 Deserialize
102));
103impl_reflect_opaque!(::core::num::NonZeroI8(
104 Clone,
105 Debug,
106 Hash,
107 PartialEq,
108 PartialOrd,
109 Serialize,
110 Deserialize
111));
112impl_reflect_opaque!(::core::num::Wrapping<T: Clone + Send + Sync>(Clone));
113impl_reflect_opaque!(::core::num::Saturating<T: Clone + Send + Sync>(Clone));
114
115#[cfg(test)]
116mod tests {
117 use bevy_reflect::{FromReflect, PartialReflect};
118
119 #[test]
120 fn nonzero_usize_impl_reflect_from_reflect() {
121 let a: &dyn PartialReflect = &core::num::NonZero::<usize>::new(42).unwrap();
122 let b: &dyn PartialReflect = &core::num::NonZero::<usize>::new(42).unwrap();
123 assert!(a.reflect_partial_eq(b).unwrap_or_default());
124 let forty_two: core::num::NonZero<usize> = FromReflect::from_reflect(a).unwrap();
125 assert_eq!(forty_two, core::num::NonZero::<usize>::new(42).unwrap());
126 }
127}