Migrate `Deserialize` trait to `DeserializeOwned` for Serde 1.0

This commit is contained in:
Mike Engel 2017-04-21 23:21:04 -06:00
parent ca59ac1f02
commit 0932f14bc2
No known key found for this signature in database
GPG Key ID: 225C4F0D1FDE7CF8
2 changed files with 6 additions and 6 deletions

View File

@ -31,7 +31,7 @@ pub use crypto::{
pub use validation::Validation;
use serde::de::Deserialize;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use errors::{Result, ErrorKind};
@ -101,7 +101,7 @@ macro_rules! expect_two {
/// // Claims is a struct that implements Deserialize
/// let token_data = decode::<Claims>(&token, "secret", Algorithm::HS256, &Validation::default());
/// ```
pub fn decode<T: Deserialize>(token: &str, key: &[u8], algorithm: Algorithm, validation: &Validation) -> Result<TokenData<T>> {
pub fn decode<T: DeserializeOwned>(token: &str, key: &[u8], algorithm: Algorithm, validation: &Validation) -> Result<TokenData<T>> {
let (signature, signing_input) = expect_two!(token.rsplitn(2, '.'));
if validation.validate_signature && !verify(signature, signing_input, key, algorithm)? {

View File

@ -1,5 +1,5 @@
use base64;
use serde::de::Deserialize;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_json::{from_str, to_string, Value};
use serde_json::map::Map;
@ -10,7 +10,7 @@ use header::Header;
/// The return type of a successful call to decode
#[derive(Debug)]
pub struct TokenData<T: Deserialize> {
pub struct TokenData<T: DeserializeOwned> {
pub header: Header,
pub claims: T
}
@ -22,7 +22,7 @@ pub fn to_jwt_part<T: Serialize>(input: &T) -> Result<String> {
}
/// Decodes from base64 and deserializes from JSON to a struct
pub fn from_jwt_part<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<T> {
pub fn from_jwt_part<B: AsRef<str>, T: DeserializeOwned>(encoded: B) -> Result<T> {
let decoded = base64::decode_config(encoded.as_ref(), base64::URL_SAFE_NO_PAD)?;
let s = String::from_utf8(decoded)?;
@ -30,7 +30,7 @@ pub fn from_jwt_part<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<T> {
}
/// Decodes from base64 and deserializes from JSON to a struct AND a hashmap
pub fn from_jwt_part_claims<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<(T, Map<String, Value>)> {
pub fn from_jwt_part_claims<B: AsRef<str>, T: DeserializeOwned>(encoded: B) -> Result<(T, Map<String, Value>)> {
let decoded = base64::decode_config(encoded.as_ref(), base64::URL_SAFE_NO_PAD)?;
let s = String::from_utf8(decoded)?;