@@ -35,7 +35,7 @@ pub mod jwk;
35
35
36
36
/// JWT header.
37
37
#[ non_exhaustive]
38
- #[ derive( Debug , Serialize , Deserialize , Default ) ]
38
+ #[ derive( Clone , Debug , Serialize , Deserialize , Default ) ]
39
39
pub struct Header {
40
40
#[ serde( skip_serializing_if = "Option::is_none" ) ]
41
41
pub typ : Option < String > ,
@@ -113,7 +113,7 @@ impl<'a, T> Iterator for OneOrManyIter<'a, T> {
113
113
#[ serde_as]
114
114
#[ skip_serializing_none]
115
115
#[ non_exhaustive]
116
- #[ derive( Debug , Serialize , Default , Deserialize ) ]
116
+ #[ derive( Clone , Debug , Serialize , Default , Deserialize ) ]
117
117
pub struct Claims < ExtraClaims > {
118
118
#[ serde_as( as = "Option<serde_with::DurationSeconds<f64>>" ) ]
119
119
pub exp : Option < Duration > ,
@@ -139,7 +139,7 @@ pub struct Claims<ExtraClaims> {
139
139
/// Use `serde_json::Map<String, Value>` for dynamic claims.
140
140
///
141
141
/// Or define your own claims type which implements `Serialize`/`Deserialize`.
142
- #[ derive( Default , Debug ) ]
142
+ #[ derive( Clone , Default , Debug ) ]
143
143
pub struct HeaderAndClaims < ExtraClaims > {
144
144
header : Header ,
145
145
claims : Claims < ExtraClaims > ,
0 commit comments