@@ -1367,4 +1367,37 @@ mod test {
13671367 assert ! ( rest. is_empty( ) ) ;
13681368 Ok ( ( ) )
13691369 }
1370+
1371+ #[ test]
1372+ fn enc_dec_byte_slice ( ) -> Result < ( ) , EncodingError > {
1373+ let input: & [ u8 ] = b"hello world" ;
1374+ let buf = input. to_encoded_bytes ( ) ?;
1375+ let ( result, rest) : ( Vec < u8 > , & [ u8 ] ) = Vec :: < u8 > :: decode ( & buf) ?;
1376+ assert_eq ! ( result, input) ;
1377+ assert ! ( rest. is_empty( ) ) ;
1378+ Ok ( ( ) )
1379+ }
1380+
1381+ #[ test]
1382+ fn enc_dec_empty_slice_slice_u8 ( ) -> Result < ( ) , EncodingError > {
1383+ let input: & [ & [ u8 ] ] = & [ ] ;
1384+ let buf = input. to_encoded_bytes ( ) ?;
1385+ assert_eq ! ( buf. len( ) , 1 ) ; // just the length prefix
1386+ let ( result, rest) : ( Vec < Vec < u8 > > , & [ u8 ] ) = Vec :: < Vec < u8 > > :: decode ( & buf) ?;
1387+ assert ! ( result. is_empty( ) ) ;
1388+ assert ! ( rest. is_empty( ) ) ;
1389+ Ok ( ( ) )
1390+ }
1391+
1392+ #[ test]
1393+ fn slice_and_vec_encode_identically ( ) -> Result < ( ) , EncodingError > {
1394+ let vec_input = vec ! [ b"hello" . to_vec( ) , b"goodbye" . to_vec( ) ] ;
1395+ let slice_input: & [ & [ u8 ] ] = & [ b"hello" . as_slice ( ) , b"goodbye" . as_slice ( ) ] ;
1396+
1397+ let vec_buf = vec_input. to_encoded_bytes ( ) ?;
1398+ let slice_buf = slice_input. to_encoded_bytes ( ) ?;
1399+
1400+ assert_eq ! ( & * vec_buf, & * slice_buf) ;
1401+ Ok ( ( ) )
1402+ }
13701403}
0 commit comments