File tree Expand file tree Collapse file tree 1 file changed +12
-5
lines changed
Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -95,11 +95,18 @@ impl CreateAttachment {
9595 /// places.
9696 #[ must_use]
9797 pub fn to_base64 ( & self ) -> String {
98- let mut encoded = {
99- use base64:: Engine ;
100- base64:: prelude:: BASE64_STANDARD . encode ( & self . data )
101- } ;
102- encoded. insert_str ( 0 , "data:image/png;base64," ) ;
98+ use base64:: engine:: { Config , Engine } ;
99+
100+ const PREFIX : & str = "data:image/png;base64," ;
101+
102+ let engine = base64:: prelude:: BASE64_STANDARD ;
103+ let encoded_size = base64:: encoded_len ( self . data . len ( ) , engine. config ( ) . encode_padding ( ) )
104+ . and_then ( |len| len. checked_add ( PREFIX . len ( ) ) )
105+ . expect ( "buffer capacity overflow" ) ;
106+
107+ let mut encoded = String :: with_capacity ( encoded_size) ;
108+ encoded. push_str ( PREFIX ) ;
109+ engine. encode_string ( & self . data , & mut encoded) ;
103110 encoded
104111 }
105112
You can’t perform that action at this time.
0 commit comments