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