@@ -190,7 +190,7 @@ extern "C" {
190
190
}
191
191
192
192
pub 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) ;
194
194
unsafe {
195
195
match proxy_set_header_map_pairs ( map_type, serialized_map. as_ptr ( ) , serialized_map. len ( ) ) {
196
196
Status :: Ok => Ok ( ( ) ) ,
@@ -200,7 +200,7 @@ pub fn set_map(map_type: MapType, map: Vec<(&str, &str)>) -> Result<(), Status>
200
200
}
201
201
202
202
pub 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) ;
204
204
unsafe {
205
205
match proxy_set_header_map_pairs ( map_type, serialized_map. as_ptr ( ) , serialized_map. len ( ) ) {
206
206
Status :: Ok => Ok ( ( ) ) ,
@@ -710,7 +710,7 @@ pub fn send_http_response(
710
710
headers : Vec < ( & str , & str ) > ,
711
711
body : Option < & [ u8 ] > ,
712
712
) -> Result < ( ) , Status > {
713
- let serialized_headers = utils:: serialize_map ( headers) ;
713
+ let serialized_headers = utils:: serialize_map ( & headers) ;
714
714
unsafe {
715
715
match proxy_send_local_response (
716
716
status_code,
@@ -733,7 +733,7 @@ pub fn send_grpc_response(
733
733
grpc_status_message : Option < & str > ,
734
734
custom_metadata : Vec < ( & str , & [ u8 ] ) > ,
735
735
) -> Result < ( ) , Status > {
736
- let serialized_custom_metadata = utils:: serialize_map_bytes ( custom_metadata) ;
736
+ let serialized_custom_metadata = utils:: serialize_map_bytes ( & custom_metadata) ;
737
737
unsafe {
738
738
match proxy_send_local_response (
739
739
200 ,
@@ -773,8 +773,8 @@ pub fn dispatch_http_call(
773
773
trailers : Vec < ( & str , & str ) > ,
774
774
timeout : Duration ,
775
775
) -> 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) ;
778
778
let mut return_token: u32 = 0 ;
779
779
unsafe {
780
780
match proxy_http_call (
@@ -826,7 +826,7 @@ pub fn dispatch_grpc_call(
826
826
timeout : Duration ,
827
827
) -> Result < u32 , Status > {
828
828
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) ;
830
830
unsafe {
831
831
match proxy_grpc_call (
832
832
upstream_name. as_ptr ( ) ,
@@ -874,7 +874,7 @@ pub fn open_grpc_stream(
874
874
initial_metadata : Vec < ( & str , & [ u8 ] ) > ,
875
875
) -> Result < u32 , Status > {
876
876
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) ;
878
878
unsafe {
879
879
match proxy_grpc_stream (
880
880
upstream_name. as_ptr ( ) ,
@@ -1159,18 +1159,18 @@ mod utils {
1159
1159
bytes
1160
1160
}
1161
1161
1162
- pub ( super ) fn serialize_map ( map : Vec < ( & str , & str ) > ) -> Bytes {
1162
+ pub ( super ) fn serialize_map ( map : & [ ( & str , & str ) ] ) -> Bytes {
1163
1163
let mut size: usize = 4 ;
1164
- for ( name, value) in & map {
1164
+ for ( name, value) in map {
1165
1165
size += name. len ( ) + value. len ( ) + 10 ;
1166
1166
}
1167
1167
let mut bytes: Bytes = Vec :: with_capacity ( size) ;
1168
1168
bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1169
- for ( name, value) in & map {
1169
+ for ( name, value) in map {
1170
1170
bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1171
1171
bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1172
1172
}
1173
- for ( name, value) in & map {
1173
+ for ( name, value) in map {
1174
1174
bytes. extend_from_slice ( name. as_bytes ( ) ) ;
1175
1175
bytes. push ( 0 ) ;
1176
1176
bytes. extend_from_slice ( value. as_bytes ( ) ) ;
@@ -1179,18 +1179,18 @@ mod utils {
1179
1179
bytes
1180
1180
}
1181
1181
1182
- pub ( super ) fn serialize_map_bytes ( map : Vec < ( & str , & [ u8 ] ) > ) -> Bytes {
1182
+ pub ( super ) fn serialize_map_bytes ( map : & [ ( & str , & [ u8 ] ) ] ) -> Bytes {
1183
1183
let mut size: usize = 4 ;
1184
- for ( name, value) in & map {
1184
+ for ( name, value) in map {
1185
1185
size += name. len ( ) + value. len ( ) + 10 ;
1186
1186
}
1187
1187
let mut bytes: Bytes = Vec :: with_capacity ( size) ;
1188
1188
bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1189
- for ( name, value) in & map {
1189
+ for ( name, value) in map {
1190
1190
bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1191
1191
bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1192
1192
}
1193
- for ( name, value) in & map {
1193
+ for ( name, value) in map {
1194
1194
bytes. extend_from_slice ( name. as_bytes ( ) ) ;
1195
1195
bytes. push ( 0 ) ;
1196
1196
bytes. extend_from_slice ( value) ;
@@ -1290,14 +1290,14 @@ mod utils {
1290
1290
1291
1291
#[ test]
1292
1292
fn test_serialize_map ( ) {
1293
- let serialized_map = serialize_map ( MAP . to_vec ( ) ) ;
1293
+ let serialized_map = serialize_map ( MAP ) ;
1294
1294
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1295
1295
}
1296
1296
1297
1297
#[ test]
1298
1298
fn test_serialize_map_bytes ( ) {
1299
1299
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) ;
1301
1301
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1302
1302
}
1303
1303
@@ -1326,7 +1326,7 @@ mod utils {
1326
1326
fn bench_serialize_map ( b : & mut Bencher ) {
1327
1327
let map = MAP . to_vec ( ) ;
1328
1328
b. iter ( || {
1329
- serialize_map ( test:: black_box ( map. clone ( ) ) ) ;
1329
+ serialize_map ( test:: black_box ( & map) ) ;
1330
1330
} ) ;
1331
1331
}
1332
1332
@@ -1335,7 +1335,7 @@ mod utils {
1335
1335
fn bench_serialize_map_bytes ( b : & mut Bencher ) {
1336
1336
let map: Vec < ( & str , & [ u8 ] ) > = MAP . iter ( ) . map ( |x| ( x. 0 , x. 1 . as_bytes ( ) ) ) . collect ( ) ;
1337
1337
b. iter ( || {
1338
- serialize_map_bytes ( test:: black_box ( map. clone ( ) ) ) ;
1338
+ serialize_map_bytes ( test:: black_box ( & map) ) ;
1339
1339
} ) ;
1340
1340
}
1341
1341
0 commit comments