@@ -190,7 +190,7 @@ extern "C" {
190190}
191191
192192pub fn set_map ( map_type : MapType , map : Vec < ( & str , & str ) > ) -> Result < ( ) , Status > {
193- let serialized_map = utils:: serialize_map ( map) ;
193+ let serialized_map = utils:: serialize_map ( & map) ;
194194 unsafe {
195195 match proxy_set_header_map_pairs ( map_type, serialized_map. as_ptr ( ) , serialized_map. len ( ) ) {
196196 Status :: Ok => Ok ( ( ) ) ,
@@ -200,7 +200,7 @@ pub fn set_map(map_type: MapType, map: Vec<(&str, &str)>) -> Result<(), Status>
200200}
201201
202202pub fn set_map_bytes ( map_type : MapType , map : Vec < ( & str , & [ u8 ] ) > ) -> Result < ( ) , Status > {
203- let serialized_map = utils:: serialize_map_bytes ( map) ;
203+ let serialized_map = utils:: serialize_map_bytes ( & map) ;
204204 unsafe {
205205 match proxy_set_header_map_pairs ( map_type, serialized_map. as_ptr ( ) , serialized_map. len ( ) ) {
206206 Status :: Ok => Ok ( ( ) ) ,
@@ -710,7 +710,7 @@ pub fn send_http_response(
710710 headers : Vec < ( & str , & str ) > ,
711711 body : Option < & [ u8 ] > ,
712712) -> Result < ( ) , Status > {
713- let serialized_headers = utils:: serialize_map ( headers) ;
713+ let serialized_headers = utils:: serialize_map ( & headers) ;
714714 unsafe {
715715 match proxy_send_local_response (
716716 status_code,
@@ -733,7 +733,7 @@ pub fn send_grpc_response(
733733 grpc_status_message : Option < & str > ,
734734 custom_metadata : Vec < ( & str , & [ u8 ] ) > ,
735735) -> Result < ( ) , Status > {
736- let serialized_custom_metadata = utils:: serialize_map_bytes ( custom_metadata) ;
736+ let serialized_custom_metadata = utils:: serialize_map_bytes ( & custom_metadata) ;
737737 unsafe {
738738 match proxy_send_local_response (
739739 200 ,
@@ -773,8 +773,8 @@ pub fn dispatch_http_call(
773773 trailers : Vec < ( & str , & str ) > ,
774774 timeout : Duration ,
775775) -> Result < u32 , Status > {
776- let serialized_headers = utils:: serialize_map ( headers) ;
777- let serialized_trailers = utils:: serialize_map ( trailers) ;
776+ let serialized_headers = utils:: serialize_map ( & headers) ;
777+ let serialized_trailers = utils:: serialize_map ( & trailers) ;
778778 let mut return_token: u32 = 0 ;
779779 unsafe {
780780 match proxy_http_call (
@@ -826,7 +826,7 @@ pub fn dispatch_grpc_call(
826826 timeout : Duration ,
827827) -> Result < u32 , Status > {
828828 let mut return_callout_id = 0 ;
829- let serialized_initial_metadata = utils:: serialize_map_bytes ( initial_metadata) ;
829+ let serialized_initial_metadata = utils:: serialize_map_bytes ( & initial_metadata) ;
830830 unsafe {
831831 match proxy_grpc_call (
832832 upstream_name. as_ptr ( ) ,
@@ -874,7 +874,7 @@ pub fn open_grpc_stream(
874874 initial_metadata : Vec < ( & str , & [ u8 ] ) > ,
875875) -> Result < u32 , Status > {
876876 let mut return_stream_id = 0 ;
877- let serialized_initial_metadata = utils:: serialize_map_bytes ( initial_metadata) ;
877+ let serialized_initial_metadata = utils:: serialize_map_bytes ( & initial_metadata) ;
878878 unsafe {
879879 match proxy_grpc_stream (
880880 upstream_name. as_ptr ( ) ,
@@ -1159,18 +1159,18 @@ mod utils {
11591159 bytes
11601160 }
11611161
1162- pub ( super ) fn serialize_map ( map : Vec < ( & str , & str ) > ) -> Bytes {
1162+ pub ( super ) fn serialize_map ( map : & [ ( & str , & str ) ] ) -> Bytes {
11631163 let mut size: usize = 4 ;
1164- for ( name, value) in & map {
1164+ for ( name, value) in map {
11651165 size += name. len ( ) + value. len ( ) + 10 ;
11661166 }
11671167 let mut bytes: Bytes = Vec :: with_capacity ( size) ;
11681168 bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1169- for ( name, value) in & map {
1169+ for ( name, value) in map {
11701170 bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
11711171 bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
11721172 }
1173- for ( name, value) in & map {
1173+ for ( name, value) in map {
11741174 bytes. extend_from_slice ( name. as_bytes ( ) ) ;
11751175 bytes. push ( 0 ) ;
11761176 bytes. extend_from_slice ( value. as_bytes ( ) ) ;
@@ -1179,18 +1179,18 @@ mod utils {
11791179 bytes
11801180 }
11811181
1182- pub ( super ) fn serialize_map_bytes ( map : Vec < ( & str , & [ u8 ] ) > ) -> Bytes {
1182+ pub ( super ) fn serialize_map_bytes ( map : & [ ( & str , & [ u8 ] ) ] ) -> Bytes {
11831183 let mut size: usize = 4 ;
1184- for ( name, value) in & map {
1184+ for ( name, value) in map {
11851185 size += name. len ( ) + value. len ( ) + 10 ;
11861186 }
11871187 let mut bytes: Bytes = Vec :: with_capacity ( size) ;
11881188 bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1189- for ( name, value) in & map {
1189+ for ( name, value) in map {
11901190 bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
11911191 bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
11921192 }
1193- for ( name, value) in & map {
1193+ for ( name, value) in map {
11941194 bytes. extend_from_slice ( name. as_bytes ( ) ) ;
11951195 bytes. push ( 0 ) ;
11961196 bytes. extend_from_slice ( value) ;
@@ -1290,14 +1290,14 @@ mod utils {
12901290
12911291 #[ test]
12921292 fn test_serialize_map ( ) {
1293- let serialized_map = serialize_map ( MAP . to_vec ( ) ) ;
1293+ let serialized_map = serialize_map ( MAP ) ;
12941294 assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
12951295 }
12961296
12971297 #[ test]
12981298 fn test_serialize_map_bytes ( ) {
12991299 let map: Vec < ( & str , & [ u8 ] ) > = MAP . iter ( ) . map ( |x| ( x. 0 , x. 1 . as_bytes ( ) ) ) . collect ( ) ;
1300- let serialized_map = serialize_map_bytes ( map) ;
1300+ let serialized_map = serialize_map_bytes ( & map) ;
13011301 assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
13021302 }
13031303
@@ -1326,7 +1326,7 @@ mod utils {
13261326 fn bench_serialize_map ( b : & mut Bencher ) {
13271327 let map = MAP . to_vec ( ) ;
13281328 b. iter ( || {
1329- serialize_map ( test:: black_box ( map. clone ( ) ) ) ;
1329+ serialize_map ( test:: black_box ( & map) ) ;
13301330 } ) ;
13311331 }
13321332
@@ -1335,7 +1335,7 @@ mod utils {
13351335 fn bench_serialize_map_bytes ( b : & mut Bencher ) {
13361336 let map: Vec < ( & str , & [ u8 ] ) > = MAP . iter ( ) . map ( |x| ( x. 0 , x. 1 . as_bytes ( ) ) ) . collect ( ) ;
13371337 b. iter ( || {
1338- serialize_map_bytes ( test:: black_box ( map. clone ( ) ) ) ;
1338+ serialize_map_bytes ( test:: black_box ( & map) ) ;
13391339 } ) ;
13401340 }
13411341
0 commit comments