1#[cfg(test)]
7mod tests;
8
9#[cfg(feature = "try_from")]
10use crate::number::traits::{ConstZero, Ident};
11use crate::number::{
12 integer::{
13 macros::{
14 for_primitive, from_integer, from_primitive, try_for_primitive, try_from_any,
15 try_from_integer, try_from_primitive,
16 },
17 *,
18 },
19 traits::Number,
20};
21#[cfg(feature = "try_from")]
22use core::num::{NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8};
23use core::num::{NonZeroU128, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8};
24
25from_primitive![int for:NonNegativeInteger+8, from:u+8];
31from_primitive![int for:NonNegativeInteger+16, from:u+8,16];
32from_primitive![int for:NonNegativeInteger+32, from:u+8,16,32];
33from_primitive![int for:NonNegativeInteger+64, from:u+8,16,32,64];
34from_primitive![int for:NonNegativeInteger+128, from:u+8,16,32,64,128];
35try_from_primitive![int for:NonNegativeInteger+8, from:u+16,32,64,128];
37try_from_primitive![int for:NonNegativeInteger+16, from:u+32,64,128];
38try_from_primitive![int for:NonNegativeInteger+32, from:u+64,128];
39try_from_primitive![int for:NonNegativeInteger+64, from:u+128];
40
41from_primitive![non0 for:NonNegativeInteger+8, from:NonZeroU+8];
43from_primitive![non0 for:NonNegativeInteger+16, from:NonZeroU+8,16];
44from_primitive![non0 for:NonNegativeInteger+32, from:NonZeroU+8,16,32];
45from_primitive![non0 for:NonNegativeInteger+64, from:NonZeroU+8,16,32,64];
46from_primitive![non0 for:NonNegativeInteger+128, from:NonZeroU+8,16,32,64,128];
47try_from_primitive![non0 for:NonNegativeInteger+8, from:NonZeroU+16,32,64,128];
49try_from_primitive![non0 for:NonNegativeInteger+16, from:NonZeroU+32,64,128];
50try_from_primitive![non0 for:NonNegativeInteger+32, from:NonZeroU+64,128];
51try_from_primitive![non0 for:NonNegativeInteger+64, from:NonZeroU+128];
52
53try_from_primitive![int for:NonNegativeInteger+8, from:i+8,16,32,64,128];
57try_from_primitive![int for:NonNegativeInteger+16, from:i+8,16,32,64,128];
58try_from_primitive![int for:NonNegativeInteger+32, from:i+8,16,32,64,128];
59try_from_primitive![int for:NonNegativeInteger+64, from:i+8,16,32,64,128];
60try_from_primitive![int for:NonNegativeInteger+128, from:i+8,16,32,64,128];
61
62try_from_primitive![non0 for:NonNegativeInteger+8, from:NonZeroI+8,16,32,64,128];
64try_from_primitive![non0 for:NonNegativeInteger+16, from:NonZeroI+8,16,32,64,128];
65try_from_primitive![non0 for:NonNegativeInteger+32, from:NonZeroI+8,16,32,64,128];
66try_from_primitive![non0 for:NonNegativeInteger+64, from:NonZeroI+8,16,32,64,128];
67try_from_primitive![non0 for:NonNegativeInteger+128, from:NonZeroI+8,16,32,64,128];
68
69from_integer![int for:NonNegativeInteger+16, from:NonNegativeInteger+8];
73from_integer![int for:NonNegativeInteger+32, from:NonNegativeInteger+8,16];
74from_integer![int for:NonNegativeInteger+64, from:NonNegativeInteger+8,16,32];
75from_integer![int for:NonNegativeInteger+128, from:NonNegativeInteger+8,16,32, 64];
76try_from_integer![int for:NonNegativeInteger+8, from:NonNegativeInteger+16,32,64,128];
78try_from_integer![int for:NonNegativeInteger+16, from:NonNegativeInteger+32,64,128];
79try_from_integer![int for:NonNegativeInteger+32, from:NonNegativeInteger+64,128];
80try_from_integer![int for:NonNegativeInteger+64, from:NonNegativeInteger+128];
81
82from_integer![non0 for:NonNegativeInteger+8, from:PositiveInteger+8];
84from_integer![non0 for:NonNegativeInteger+16, from:PositiveInteger+8,16];
85from_integer![non0 for:NonNegativeInteger+32, from:PositiveInteger+8,16,32];
86from_integer![non0 for:NonNegativeInteger+64, from:PositiveInteger+8,16,32,64];
87from_integer![non0 for:NonNegativeInteger+128, from:PositiveInteger+8,16,32,64,128];
88try_from_integer![non0 for:NonNegativeInteger+8, from:PositiveInteger+16,32,64,128];
90try_from_integer![non0 for:NonNegativeInteger+16, from:PositiveInteger+32,64,128];
91try_from_integer![non0 for:NonNegativeInteger+32, from:PositiveInteger+64,128];
92try_from_integer![non0 for:NonNegativeInteger+64, from:PositiveInteger+128];
93
94from_integer![int for:NonNegativeInteger+8, from:Prime+8];
96from_integer![int for:NonNegativeInteger+16, from:Prime+8,16];
97from_integer![int for:NonNegativeInteger+32, from:Prime+8,16,32];
98from_integer![int for:NonNegativeInteger+64, from:Prime+8,16,32,64];
99from_integer![int for:NonNegativeInteger+128, from:Prime+8,16,32,64,128];
100try_from_integer![int for:NonNegativeInteger+8, from:Prime+16,32,64,128];
102try_from_integer![int for:NonNegativeInteger+16, from:Prime+32,64,128];
103try_from_integer![int for:NonNegativeInteger+32, from:Prime+64,128];
104try_from_integer![int for:NonNegativeInteger+64, from:Prime+128];
105
106try_from_integer![int for:NonNegativeInteger+8, from:Integer+8,16,32,64,128];
110try_from_integer![int for:NonNegativeInteger+16, from:Integer+8,16,32,64,128];
111try_from_integer![int for:NonNegativeInteger+32, from:Integer+8,16,32,64,128];
112try_from_integer![int for:NonNegativeInteger+64, from:Integer+8,16,32,64,128];
113try_from_integer![int for:NonNegativeInteger+128, from:Integer+8,16,32,64,128];
114
115try_from_integer![non0 for:NonNegativeInteger+8, from:NonZeroInteger+8,16,32,64,128];
117try_from_integer![non0 for:NonNegativeInteger+16, from:NonZeroInteger+8,16,32,64,128];
118try_from_integer![non0 for:NonNegativeInteger+32, from:NonZeroInteger+8,16,32,64,128];
119try_from_integer![non0 for:NonNegativeInteger+64, from:NonZeroInteger+8,16,32,64,128];
120try_from_integer![non0 for:NonNegativeInteger+128, from:NonZeroInteger+8,16,32,64,128];
121
122try_from_any![zero for:NonNegativeInteger+8, from:NonPositiveInteger+8,16,32,64,128];
124try_from_any![zero for:NonNegativeInteger+16, from:NonPositiveInteger+8,16,32,64,128];
125try_from_any![zero for:NonNegativeInteger+32, from:NonPositiveInteger+8,16,32,64,128];
126try_from_any![zero for:NonNegativeInteger+64, from:NonPositiveInteger+8,16,32,64,128];
127try_from_any![zero for:NonNegativeInteger+128, from:NonPositiveInteger+8,16,32,64,128];
128
129try_from_any![error for: NonNegativeInteger+8, from: NegativeInteger+8,16,32,64,128];
133try_from_any![error for: NonNegativeInteger+16, from: NegativeInteger+8,16,32,64,128];
134try_from_any![error for: NonNegativeInteger+32, from: NegativeInteger+8,16,32,64,128];
135try_from_any![error for: NonNegativeInteger+64, from: NegativeInteger+8,16,32,64,128];
136try_from_any![error for: NonNegativeInteger+128, from: NegativeInteger+8,16,32,64,128];
137
138for_primitive![int for:u+8, from:NonNegativeInteger+8];
142for_primitive![int for:u+16, from:NonNegativeInteger+8,16];
143for_primitive![int for:u+32, from:NonNegativeInteger+8,16,32];
144for_primitive![int for:u+64, from:NonNegativeInteger+8,16,32,64];
145for_primitive![int for:u+128, from:NonNegativeInteger+8,16,32,64,128];
146try_for_primitive![int for:u+8, from:NonNegativeInteger+16,32,64,128];
148try_for_primitive![int for:u+16, from:NonNegativeInteger+32,64,128];
149try_for_primitive![int for:u+32, from:NonNegativeInteger+64,128];
150try_for_primitive![int for:u+64, from:NonNegativeInteger+128];
151
152try_for_primitive![int for:i+8, from:NonNegativeInteger+8,16,32,64,128];
154try_for_primitive![int for:i+16, from:NonNegativeInteger+8,16,32,64,128];
155try_for_primitive![int for:i+32, from:NonNegativeInteger+8,16,32,64,128];
156try_for_primitive![int for:i+64, from:NonNegativeInteger+8,16,32,64,128];
157try_for_primitive![int for:i+128, from:NonNegativeInteger+8,16,32,64,128];
158
159try_for_primitive![int_non0 for:NonZeroI+8, from:NonNegativeInteger+8,16,32,64,128];
161try_for_primitive![int_non0 for:NonZeroI+16, from:NonNegativeInteger+8,16,32,64,128];
162try_for_primitive![int_non0 for:NonZeroI+32, from:NonNegativeInteger+8,16,32,64,128];
163try_for_primitive![int_non0 for:NonZeroI+64, from:NonNegativeInteger+8,16,32,64,128];
164try_for_primitive![int_non0 for:NonZeroI+128, from:NonNegativeInteger+8,16,32,64,128];
165
166try_for_primitive![int_non0 for:NonZeroU+8, from:NonNegativeInteger+8,16,32,64,128];
168try_for_primitive![int_non0 for:NonZeroU+16, from:NonNegativeInteger+8,16,32,64,128];
169try_for_primitive![int_non0 for:NonZeroU+32, from:NonNegativeInteger+8,16,32,64,128];
170try_for_primitive![int_non0 for:NonZeroU+64, from:NonNegativeInteger+8,16,32,64,128];
171try_for_primitive![int_non0 for:NonZeroU+128, from:NonNegativeInteger+8,16,32,64,128];