checked_decimal_macro/
uint.rs1#![allow(clippy::assign_op_pattern)]
5#![allow(clippy::ptr_offset_with_cast)]
6#![allow(clippy::manual_range_contains)]
7
8use uint::construct_uint;
9
10construct_uint! {
11 pub struct U256(4);
12}
13construct_uint! {
14 pub struct U192(3);
15}
16
17#[allow(dead_code)]
18pub const fn to_u256(n: u128) -> U256 {
19 U256([n as u64, (n >> 64) as u64, 0, 0])
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25
26 #[test]
27 fn test_to_u256() {
28 {
29 let from = 0;
30 let result = to_u256(from);
31 let back = result.as_u128();
32 assert_eq!(from, back);
33 }
34 {
35 let from = 1;
36 let result = to_u256(from);
37 let back = result.as_u128();
38 assert_eq!(from, back);
39 }
40 {
41 let from = 1324342342433342342;
42 let result = to_u256(from);
43 let back = result.as_u128();
44 assert_eq!(from, back);
45 }
46 {
47 let from = u64::MAX as u128;
48 let result = to_u256(from);
49 let back = result.as_u128();
50 assert_eq!(from, back);
51 }
52 {
53 let from = u64::MAX as u128 + 1;
54 let result = to_u256(from);
55 let back = result.as_u128();
56 assert_eq!(from, back);
57 }
58 {
59 let from = u64::MAX as u128 + 2;
60 let result = to_u256(from);
61 let back = result.as_u128();
62 assert_eq!(from, back);
63 }
64 {
65 let from = u128::MAX;
66 let result = to_u256(from);
67 let back = result.as_u128();
68 assert_eq!(from, back);
69 }
70 }
71}