@@ -66,23 +66,7 @@ impl Int512 {
66
66
/// [`from_be_bytes`]: Self::from_be_bytes
67
67
#[ inline]
68
68
pub const fn new ( value : i128 ) -> Self {
69
- // See https://en.wikipedia.org/wiki/Sign_extension
70
- let b = value. to_be_bytes ( ) ;
71
- if value. is_negative ( ) {
72
- Self :: from_be_bytes ( [
73
- 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ,
74
- 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ,
75
- 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ,
76
- 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , b[ 0 ] , b[ 1 ] , b[ 2 ] , b[ 3 ] , b[ 4 ] , b[ 5 ] , b[ 6 ] , b[ 7 ] ,
77
- b[ 8 ] , b[ 9 ] , b[ 10 ] , b[ 11 ] , b[ 12 ] , b[ 13 ] , b[ 14 ] , b[ 15 ] ,
78
- ] )
79
- } else {
80
- Self :: from_be_bytes ( [
81
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
82
- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , b[ 0 ] , b[ 1 ] , b[ 2 ] , b[ 3 ] ,
83
- b[ 4 ] , b[ 5 ] , b[ 6 ] , b[ 7 ] , b[ 8 ] , b[ 9 ] , b[ 10 ] , b[ 11 ] , b[ 12 ] , b[ 13 ] , b[ 14 ] , b[ 15 ] ,
84
- ] )
85
- }
69
+ Self :: from_be_bytes ( grow_be_int ( value. to_be_bytes ( ) ) )
86
70
}
87
71
88
72
/// Creates a Int512(0)
0 commit comments