99// except according to those terms.
1010
1111use fmt:: { Formatter , Result , LowerExp , UpperExp , Display , Debug } ;
12- use mem;
12+ use mem:: MaybeUninit ;
1313use num:: flt2dec;
1414
1515// 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,
2020 where T : flt2dec:: DecodableFloat
2121{
2222 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 ( ) ;
2525 let formatted = flt2dec:: to_exact_fixed_str ( flt2dec:: strategy:: grisu:: format_exact,
2626 * num, sign, precision,
27- false , & mut buf, & mut parts) ;
27+ false , buf. get_mut ( ) , parts. get_mut ( ) ) ;
2828 fmt. pad_formatted_parts ( & formatted)
2929 }
3030}
@@ -38,10 +38,11 @@ fn float_to_decimal_common_shortest<T>(fmt: &mut Formatter, num: &T,
3838{
3939 unsafe {
4040 // 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 ( ) ;
4343 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 ( ) ) ;
4546 fmt. pad_formatted_parts ( & formatted)
4647 }
4748}
@@ -75,11 +76,11 @@ fn float_to_exponential_common_exact<T>(fmt: &mut Formatter, num: &T,
7576 where T : flt2dec:: DecodableFloat
7677{
7778 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 ( ) ;
8081 let formatted = flt2dec:: to_exact_exp_str ( flt2dec:: strategy:: grisu:: format_exact,
8182 * num, sign, precision,
82- upper, & mut buf, & mut parts) ;
83+ upper, buf. get_mut ( ) , parts. get_mut ( ) ) ;
8384 fmt. pad_formatted_parts ( & formatted)
8485 }
8586}
@@ -94,11 +95,11 @@ fn float_to_exponential_common_shortest<T>(fmt: &mut Formatter,
9495{
9596 unsafe {
9697 // 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 ( ) ;
99100 let formatted = flt2dec:: to_shortest_exp_str ( flt2dec:: strategy:: grisu:: format_shortest,
100101 * num, sign, ( 0 , 0 ) , upper,
101- & mut buf, & mut parts) ;
102+ buf. get_mut ( ) , parts. get_mut ( ) ) ;
102103 fmt. pad_formatted_parts ( & formatted)
103104 }
104105}
0 commit comments