@@ -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 ( ( ) ) ,
@@ -719,7 +719,7 @@ pub fn send_http_response(
719
719
headers : Vec < ( & str , & str ) > ,
720
720
body : Option < & [ u8 ] > ,
721
721
) -> Result < ( ) , Status > {
722
- let serialized_headers = utils:: serialize_map ( headers) ;
722
+ let serialized_headers = utils:: serialize_map ( & headers) ;
723
723
unsafe {
724
724
match proxy_send_local_response (
725
725
status_code,
@@ -742,7 +742,7 @@ pub fn send_grpc_response(
742
742
grpc_status_message : Option < & str > ,
743
743
custom_metadata : Vec < ( & str , & [ u8 ] ) > ,
744
744
) -> Result < ( ) , Status > {
745
- let serialized_custom_metadata = utils:: serialize_map_bytes ( custom_metadata) ;
745
+ let serialized_custom_metadata = utils:: serialize_map_bytes ( & custom_metadata) ;
746
746
unsafe {
747
747
match proxy_send_local_response (
748
748
200 ,
@@ -782,8 +782,8 @@ pub fn dispatch_http_call(
782
782
trailers : Vec < ( & str , & str ) > ,
783
783
timeout : Duration ,
784
784
) -> Result < u32 , Status > {
785
- let serialized_headers = utils:: serialize_map ( headers) ;
786
- let serialized_trailers = utils:: serialize_map ( trailers) ;
785
+ let serialized_headers = utils:: serialize_map ( & headers) ;
786
+ let serialized_trailers = utils:: serialize_map ( & trailers) ;
787
787
let mut return_token: u32 = 0 ;
788
788
unsafe {
789
789
match proxy_http_call (
@@ -835,7 +835,7 @@ pub fn dispatch_grpc_call(
835
835
timeout : Duration ,
836
836
) -> Result < u32 , Status > {
837
837
let mut return_callout_id = 0 ;
838
- let serialized_initial_metadata = utils:: serialize_map_bytes ( initial_metadata) ;
838
+ let serialized_initial_metadata = utils:: serialize_map_bytes ( & initial_metadata) ;
839
839
unsafe {
840
840
match proxy_grpc_call (
841
841
upstream_name. as_ptr ( ) ,
@@ -883,7 +883,7 @@ pub fn open_grpc_stream(
883
883
initial_metadata : Vec < ( & str , & [ u8 ] ) > ,
884
884
) -> Result < u32 , Status > {
885
885
let mut return_stream_id = 0 ;
886
- let serialized_initial_metadata = utils:: serialize_map_bytes ( initial_metadata) ;
886
+ let serialized_initial_metadata = utils:: serialize_map_bytes ( & initial_metadata) ;
887
887
unsafe {
888
888
match proxy_grpc_stream (
889
889
upstream_name. as_ptr ( ) ,
@@ -1168,18 +1168,18 @@ mod utils {
1168
1168
bytes
1169
1169
}
1170
1170
1171
- pub ( super ) fn serialize_map ( map : Vec < ( & str , & str ) > ) -> Bytes {
1171
+ pub ( super ) fn serialize_map ( map : & [ ( & str , & str ) ] ) -> Bytes {
1172
1172
let mut size: usize = 4 ;
1173
- for ( name, value) in & map {
1173
+ for ( name, value) in map {
1174
1174
size += name. len ( ) + value. len ( ) + 10 ;
1175
1175
}
1176
1176
let mut bytes: Bytes = Vec :: with_capacity ( size) ;
1177
1177
bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1178
- for ( name, value) in & map {
1178
+ for ( name, value) in map {
1179
1179
bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1180
1180
bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1181
1181
}
1182
- for ( name, value) in & map {
1182
+ for ( name, value) in map {
1183
1183
bytes. extend_from_slice ( name. as_bytes ( ) ) ;
1184
1184
bytes. push ( 0 ) ;
1185
1185
bytes. extend_from_slice ( value. as_bytes ( ) ) ;
@@ -1188,18 +1188,18 @@ mod utils {
1188
1188
bytes
1189
1189
}
1190
1190
1191
- pub ( super ) fn serialize_map_bytes ( map : Vec < ( & str , & [ u8 ] ) > ) -> Bytes {
1191
+ pub ( super ) fn serialize_map_bytes ( map : & [ ( & str , & [ u8 ] ) ] ) -> Bytes {
1192
1192
let mut size: usize = 4 ;
1193
- for ( name, value) in & map {
1193
+ for ( name, value) in map {
1194
1194
size += name. len ( ) + value. len ( ) + 10 ;
1195
1195
}
1196
1196
let mut bytes: Bytes = Vec :: with_capacity ( size) ;
1197
1197
bytes. extend_from_slice ( & ( map. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1198
- for ( name, value) in & map {
1198
+ for ( name, value) in map {
1199
1199
bytes. extend_from_slice ( & ( name. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1200
1200
bytes. extend_from_slice ( & ( value. len ( ) as u32 ) . to_le_bytes ( ) ) ;
1201
1201
}
1202
- for ( name, value) in & map {
1202
+ for ( name, value) in map {
1203
1203
bytes. extend_from_slice ( name. as_bytes ( ) ) ;
1204
1204
bytes. push ( 0 ) ;
1205
1205
bytes. extend_from_slice ( value) ;
@@ -1299,13 +1299,13 @@ mod utils {
1299
1299
1300
1300
#[ test]
1301
1301
fn test_serialize_map_empty ( ) {
1302
- let serialized_map = serialize_map ( vec ! [ ] ) ;
1302
+ let serialized_map = serialize_map ( & [ ] ) ;
1303
1303
assert_eq ! ( serialized_map, [ 0 , 0 , 0 , 0 ] ) ;
1304
1304
}
1305
1305
1306
1306
#[ test]
1307
1307
fn test_serialize_map_empty_bytes ( ) {
1308
- let serialized_map = serialize_map_bytes ( vec ! [ ] ) ;
1308
+ let serialized_map = serialize_map_bytes ( & [ ] ) ;
1309
1309
assert_eq ! ( serialized_map, [ 0 , 0 , 0 , 0 ] ) ;
1310
1310
}
1311
1311
@@ -1327,14 +1327,14 @@ mod utils {
1327
1327
1328
1328
#[ test]
1329
1329
fn test_serialize_map ( ) {
1330
- let serialized_map = serialize_map ( MAP . to_vec ( ) ) ;
1330
+ let serialized_map = serialize_map ( MAP ) ;
1331
1331
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1332
1332
}
1333
1333
1334
1334
#[ test]
1335
1335
fn test_serialize_map_bytes ( ) {
1336
1336
let map: Vec < ( & str , & [ u8 ] ) > = MAP . iter ( ) . map ( |x| ( x. 0 , x. 1 . as_bytes ( ) ) ) . collect ( ) ;
1337
- let serialized_map = serialize_map_bytes ( map) ;
1337
+ let serialized_map = serialize_map_bytes ( & map) ;
1338
1338
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1339
1339
}
1340
1340
@@ -1364,7 +1364,7 @@ mod utils {
1364
1364
// TODO(v0.3): fix arguments, so that maps can be reused without conversion.
1365
1365
let map_refs: Vec < ( & str , & str ) > =
1366
1366
map. iter ( ) . map ( |x| ( x. 0 . as_ref ( ) , x. 1 . as_ref ( ) ) ) . collect ( ) ;
1367
- let serialized_map = serialize_map ( map_refs) ;
1367
+ let serialized_map = serialize_map ( & map_refs) ;
1368
1368
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1369
1369
}
1370
1370
@@ -1374,7 +1374,7 @@ mod utils {
1374
1374
// TODO(v0.3): fix arguments, so that maps can be reused without conversion.
1375
1375
let map_refs: Vec < ( & str , & [ u8 ] ) > =
1376
1376
map. iter ( ) . map ( |x| ( x. 0 . as_ref ( ) , x. 1 . as_ref ( ) ) ) . collect ( ) ;
1377
- let serialized_map = serialize_map_bytes ( map_refs) ;
1377
+ let serialized_map = serialize_map_bytes ( & map_refs) ;
1378
1378
assert_eq ! ( serialized_map, SERIALIZED_MAP ) ;
1379
1379
}
1380
1380
@@ -1387,7 +1387,7 @@ mod utils {
1387
1387
// TODO(v0.3): fix arguments, so that maps can be reused without conversion.
1388
1388
let map_refs: Vec < ( & str , & str ) > =
1389
1389
map. iter ( ) . map ( |x| ( x. 0 . as_ref ( ) , x. 1 . as_ref ( ) ) ) . collect ( ) ;
1390
- let serialized_map = serialize_map ( map_refs) ;
1390
+ let serialized_map = serialize_map ( & map_refs) ;
1391
1391
assert_eq ! ( serialized_map, serialized_src) ;
1392
1392
}
1393
1393
// 0x80-0xff are invalid single-byte UTF-8 characters.
@@ -1410,7 +1410,7 @@ mod utils {
1410
1410
// TODO(v0.3): fix arguments, so that maps can be reused without conversion.
1411
1411
let map_refs: Vec < ( & str , & [ u8 ] ) > =
1412
1412
map. iter ( ) . map ( |x| ( x. 0 . as_ref ( ) , x. 1 . as_ref ( ) ) ) . collect ( ) ;
1413
- let serialized_map = serialize_map_bytes ( map_refs) ;
1413
+ let serialized_map = serialize_map_bytes ( & map_refs) ;
1414
1414
assert_eq ! ( serialized_map, serialized_src) ;
1415
1415
}
1416
1416
}
@@ -1420,7 +1420,7 @@ mod utils {
1420
1420
fn bench_serialize_map ( b : & mut Bencher ) {
1421
1421
let map = MAP . to_vec ( ) ;
1422
1422
b. iter ( || {
1423
- serialize_map ( test:: black_box ( map. clone ( ) ) ) ;
1423
+ serialize_map ( test:: black_box ( & map) ) ;
1424
1424
} ) ;
1425
1425
}
1426
1426
@@ -1429,7 +1429,7 @@ mod utils {
1429
1429
fn bench_serialize_map_bytes ( b : & mut Bencher ) {
1430
1430
let map: Vec < ( & str , & [ u8 ] ) > = MAP . iter ( ) . map ( |x| ( x. 0 , x. 1 . as_bytes ( ) ) ) . collect ( ) ;
1431
1431
b. iter ( || {
1432
- serialize_map_bytes ( test:: black_box ( map. clone ( ) ) ) ;
1432
+ serialize_map_bytes ( test:: black_box ( & map) ) ;
1433
1433
} ) ;
1434
1434
}
1435
1435
0 commit comments