File tree 2 files changed +17
-1
lines changed
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] {
73
73
}
74
74
}
75
75
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
+
76
86
impl < ' de , const N : usize > Deserialize < ' de > for ByteArray < N > {
77
87
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
78
88
where
Original file line number Diff line number Diff line change @@ -13,6 +13,9 @@ struct Test<'a> {
13
13
#[ serde( with = "serde_bytes" ) ]
14
14
array : [ u8 ; 314 ] ,
15
15
16
+ #[ serde( with = "serde_bytes" ) ]
17
+ borrowed_array : & ' a [ u8 ; 314 ] ,
18
+
16
19
#[ serde( with = "serde_bytes" ) ]
17
20
vec : Vec < u8 > ,
18
21
@@ -67,6 +70,7 @@ fn test() {
67
70
let test = Test {
68
71
slice : b"..." ,
69
72
array : [ 0 ; 314 ] ,
73
+ borrowed_array : & [ 1 ; 314 ] ,
70
74
vec : b"..." . to_vec ( ) ,
71
75
bytes : Bytes :: new ( b"..." ) ,
72
76
byte_array : ByteArray :: new ( [ 0 ; 314 ] ) ,
@@ -88,12 +92,14 @@ fn test() {
88
92
& [
89
93
Token :: Struct {
90
94
name : "Test" ,
91
- len : 16 ,
95
+ len : 17 ,
92
96
} ,
93
97
Token :: Str ( "slice" ) ,
94
98
Token :: BorrowedBytes ( b"..." ) ,
95
99
Token :: Str ( "array" ) ,
96
100
Token :: Bytes ( & [ 0 ; 314 ] ) ,
101
+ Token :: Str ( "borrowed_array" ) ,
102
+ Token :: BorrowedBytes ( & [ 1 ; 314 ] ) ,
97
103
Token :: Str ( "vec" ) ,
98
104
Token :: Bytes ( b"..." ) ,
99
105
Token :: Str ( "bytes" ) ,
You can’t perform that action at this time.
0 commit comments