@@ -1039,24 +1039,19 @@ pub fn write(output: &mut dyn Write, args: Arguments) -> Result {
1039
1039
/// Padding after the end of something. Returned by `Formatter::padding`.
1040
1040
#[ must_use = "don't forget to write the post padding" ]
1041
1041
struct PostPadding {
1042
- fill : [ u8 ; 4 ] ,
1043
- fill_len : u32 ,
1042
+ fill : char ,
1044
1043
padding : usize ,
1045
1044
}
1046
1045
1047
1046
impl PostPadding {
1048
- /// Safety relies on `fill[..fill_len]` being a valid UTF-8 char.
1049
- unsafe fn new ( fill : [ u8 ; 4 ] , fill_len : u32 , padding : usize ) -> PostPadding {
1050
- PostPadding { fill, fill_len, padding }
1047
+ fn new ( fill : char , padding : usize ) -> PostPadding {
1048
+ PostPadding { fill, padding }
1051
1049
}
1052
1050
1053
1051
/// Write this post padding.
1054
1052
fn write ( self , buf : & mut dyn Write ) -> Result {
1055
- let fill = unsafe {
1056
- str:: from_utf8_unchecked ( & self . fill . get_unchecked ( ..self . fill_len as usize ) )
1057
- } ;
1058
1053
for _ in 0 ..self . padding {
1059
- buf. write_str ( fill) ?;
1054
+ buf. write_char ( self . fill ) ?;
1060
1055
}
1061
1056
Ok ( ( ) )
1062
1057
}
@@ -1326,20 +1321,11 @@ impl<'a> Formatter<'a> {
1326
1321
rt:: v1:: Alignment :: Center => ( padding / 2 , ( padding + 1 ) / 2 ) ,
1327
1322
} ;
1328
1323
1329
- let mut fill = [ 0 ; 4 ] ;
1330
- let fill_len = {
1331
- let fill = self . fill . encode_utf8 ( & mut fill) ;
1332
-
1333
- for _ in 0 ..pre_pad {
1334
- self . buf . write_str ( fill) ?;
1335
- }
1336
-
1337
- fill. len ( )
1338
- } ;
1324
+ for _ in 0 ..pre_pad {
1325
+ self . buf . write_char ( self . fill ) ?;
1326
+ }
1339
1327
1340
- Ok ( unsafe {
1341
- PostPadding :: new ( fill, fill_len as u32 , post_pad)
1342
- } )
1328
+ Ok ( PostPadding :: new ( self . fill , post_pad) )
1343
1329
}
1344
1330
1345
1331
/// Takes the formatted parts and applies the padding.
0 commit comments