9
9
// except according to those terms.
10
10
11
11
use fmt:: { Formatter , Result , LowerExp , UpperExp , Display , Debug } ;
12
- use mem;
12
+ use mem:: MaybeUninit ;
13
13
use num:: flt2dec;
14
14
15
15
// Don't inline this so callers don't use the stack space this function
@@ -20,11 +20,11 @@ fn float_to_decimal_common_exact<T>(fmt: &mut Formatter, num: &T,
20
20
where T : flt2dec:: DecodableFloat
21
21
{
22
22
unsafe {
23
- let mut buf: [ u8 ; 1024 ] = mem :: uninitialized ( ) ; // enough for f32 and f64
24
- let mut parts: [ flt2dec:: Part ; 4 ] = mem :: uninitialized ( ) ;
23
+ let mut buf = MaybeUninit :: < [ u8 ; 1024 ] > :: uninitialized ( ) ; // enough for f32 and f64
24
+ let mut parts = MaybeUninit :: < [ flt2dec:: Part ; 4 ] > :: uninitialized ( ) ;
25
25
let formatted = flt2dec:: to_exact_fixed_str ( flt2dec:: strategy:: grisu:: format_exact,
26
26
* num, sign, precision,
27
- false , & mut buf, & mut parts) ;
27
+ false , buf. get_mut ( ) , parts. get_mut ( ) ) ;
28
28
fmt. pad_formatted_parts ( & formatted)
29
29
}
30
30
}
@@ -38,10 +38,11 @@ fn float_to_decimal_common_shortest<T>(fmt: &mut Formatter, num: &T,
38
38
{
39
39
unsafe {
40
40
// enough for f32 and f64
41
- let mut buf: [ u8 ; flt2dec:: MAX_SIG_DIGITS ] = mem :: uninitialized ( ) ;
42
- let mut parts: [ flt2dec:: Part ; 4 ] = mem :: uninitialized ( ) ;
41
+ let mut buf = MaybeUninit :: < [ u8 ; flt2dec:: MAX_SIG_DIGITS ] > :: uninitialized ( ) ;
42
+ let mut parts = MaybeUninit :: < [ flt2dec:: Part ; 4 ] > :: uninitialized ( ) ;
43
43
let formatted = flt2dec:: to_shortest_str ( flt2dec:: strategy:: grisu:: format_shortest, * num,
44
- sign, precision, false , & mut buf, & mut parts) ;
44
+ sign, precision, false , buf. get_mut ( ) ,
45
+ parts. get_mut ( ) ) ;
45
46
fmt. pad_formatted_parts ( & formatted)
46
47
}
47
48
}
@@ -75,11 +76,11 @@ fn float_to_exponential_common_exact<T>(fmt: &mut Formatter, num: &T,
75
76
where T : flt2dec:: DecodableFloat
76
77
{
77
78
unsafe {
78
- let mut buf: [ u8 ; 1024 ] = mem :: uninitialized ( ) ; // enough for f32 and f64
79
- let mut parts: [ flt2dec:: Part ; 6 ] = mem :: uninitialized ( ) ;
79
+ let mut buf = MaybeUninit :: < [ u8 ; 1024 ] > :: uninitialized ( ) ; // enough for f32 and f64
80
+ let mut parts = MaybeUninit :: < [ flt2dec:: Part ; 6 ] > :: uninitialized ( ) ;
80
81
let formatted = flt2dec:: to_exact_exp_str ( flt2dec:: strategy:: grisu:: format_exact,
81
82
* num, sign, precision,
82
- upper, & mut buf, & mut parts) ;
83
+ upper, buf. get_mut ( ) , parts. get_mut ( ) ) ;
83
84
fmt. pad_formatted_parts ( & formatted)
84
85
}
85
86
}
@@ -94,11 +95,11 @@ fn float_to_exponential_common_shortest<T>(fmt: &mut Formatter,
94
95
{
95
96
unsafe {
96
97
// enough for f32 and f64
97
- let mut buf: [ u8 ; flt2dec:: MAX_SIG_DIGITS ] = mem :: uninitialized ( ) ;
98
- let mut parts: [ flt2dec:: Part ; 6 ] = mem :: uninitialized ( ) ;
98
+ let mut buf = MaybeUninit :: < [ u8 ; flt2dec:: MAX_SIG_DIGITS ] > :: uninitialized ( ) ;
99
+ let mut parts = MaybeUninit :: < [ flt2dec:: Part ; 6 ] > :: uninitialized ( ) ;
99
100
let formatted = flt2dec:: to_shortest_exp_str ( flt2dec:: strategy:: grisu:: format_shortest,
100
101
* num, sign, ( 0 , 0 ) , upper,
101
- & mut buf, & mut parts) ;
102
+ buf. get_mut ( ) , parts. get_mut ( ) ) ;
102
103
fmt. pad_formatted_parts ( & formatted)
103
104
}
104
105
}
0 commit comments