File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -73,6 +73,16 @@ impl<'de, const N: usize> Deserialize<'de> for [u8; N] {
7373 }
7474}
7575
76+ impl < ' de , const N : usize > Deserialize < ' de > for & ' de [ u8 ; N ] {
77+ fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
78+ where
79+ D : Deserializer < ' de > ,
80+ {
81+ let arr: & ' de ByteArray < N > = serde:: Deserialize :: deserialize ( deserializer) ?;
82+ Ok ( & arr)
83+ }
84+ }
85+
7686impl < ' de , const N : usize > Deserialize < ' de > for ByteArray < N > {
7787 fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
7888 where
Original file line number Diff line number Diff line change @@ -13,6 +13,9 @@ struct Test<'a> {
1313 #[ serde( with = "serde_bytes" ) ]
1414 array : [ u8 ; 314 ] ,
1515
16+ #[ serde( with = "serde_bytes" ) ]
17+ borrowed_array : & ' a [ u8 ; 314 ] ,
18+
1619 #[ serde( with = "serde_bytes" ) ]
1720 vec : Vec < u8 > ,
1821
@@ -67,6 +70,7 @@ fn test() {
6770 let test = Test {
6871 slice : b"..." ,
6972 array : [ 0 ; 314 ] ,
73+ borrowed_array : & [ 1 ; 314 ] ,
7074 vec : b"..." . to_vec ( ) ,
7175 bytes : Bytes :: new ( b"..." ) ,
7276 byte_array : ByteArray :: new ( [ 0 ; 314 ] ) ,
@@ -88,12 +92,14 @@ fn test() {
8892 & [
8993 Token :: Struct {
9094 name : "Test" ,
91- len : 16 ,
95+ len : 17 ,
9296 } ,
9397 Token :: Str ( "slice" ) ,
9498 Token :: BorrowedBytes ( b"..." ) ,
9599 Token :: Str ( "array" ) ,
96100 Token :: Bytes ( & [ 0 ; 314 ] ) ,
101+ Token :: Str ( "borrowed_array" ) ,
102+ Token :: BorrowedBytes ( & [ 1 ; 314 ] ) ,
97103 Token :: Str ( "vec" ) ,
98104 Token :: Bytes ( b"..." ) ,
99105 Token :: Str ( "bytes" ) ,
You can’t perform that action at this time.
0 commit comments