orml_traits/
arithmetic.rs1pub use num_traits::{
2 Bounded, CheckedAdd, CheckedDiv, CheckedMul, CheckedShl, CheckedShr, CheckedSub, One, Signed, Zero,
3};
4use sp_std::{
5 self,
6 ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Rem, RemAssign, Shl, Shr, Sub, SubAssign},
7};
8
9pub trait SimpleArithmetic:
16 Zero
17 + One
18 + From<u8>
19 + From<u16>
20 + From<u32>
21 + TryInto<u8>
22 + TryInto<u16>
23 + TryInto<u32>
24 + TryFrom<u64>
25 + TryInto<u64>
26 + TryFrom<u128>
27 + TryInto<u128>
28 + Add<Self, Output = Self>
29 + AddAssign<Self>
30 + Sub<Self, Output = Self>
31 + SubAssign<Self>
32 + Mul<Self, Output = Self>
33 + MulAssign<Self>
34 + Div<Self, Output = Self>
35 + DivAssign<Self>
36 + Rem<Self, Output = Self>
37 + RemAssign<Self>
38 + Shl<u32, Output = Self>
39 + Shr<u32, Output = Self>
40 + CheckedShl
41 + CheckedShr
42 + CheckedAdd
43 + CheckedSub
44 + CheckedMul
45 + CheckedDiv
46 + PartialOrd<Self>
47 + Ord
48 + Bounded
49 + Sized
50{
51}
52
53impl<
54 T: Zero
55 + One
56 + From<u8>
57 + From<u16>
58 + From<u32>
59 + TryInto<u8>
60 + TryInto<u16>
61 + TryInto<u32>
62 + TryFrom<u64>
63 + TryInto<u64>
64 + TryFrom<u128>
65 + TryInto<u128>
66 + Add<Self, Output = Self>
67 + AddAssign<Self>
68 + Sub<Self, Output = Self>
69 + SubAssign<Self>
70 + Mul<Self, Output = Self>
71 + MulAssign<Self>
72 + Div<Self, Output = Self>
73 + DivAssign<Self>
74 + Rem<Self, Output = Self>
75 + RemAssign<Self>
76 + Shl<u32, Output = Self>
77 + Shr<u32, Output = Self>
78 + CheckedShl
79 + CheckedShr
80 + CheckedAdd
81 + CheckedSub
82 + CheckedMul
83 + CheckedDiv
84 + PartialOrd<Self>
85 + Ord
86 + Bounded
87 + Sized,
88 > SimpleArithmetic for T
89{
90}