From 5bb89cd341be5de96a8c7cc69bc2f4f0ff660b02 Mon Sep 17 00:00:00 2001 From: Michael Rosenberg Date: Tue, 15 Jan 2019 14:15:54 -0500 Subject: [PATCH] Use DeserializeOwned in AuthKeyExchange trait as opposed to HRTB. This is cleaner syntax and also gets around a compiler bug outlined here: https://github.com/rust-lang/rust/issues/57639 --- src/traits.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/traits.rs b/src/traits.rs index 3534bea..aa829f7 100644 --- a/src/traits.rs +++ b/src/traits.rs @@ -1,13 +1,13 @@ use rand::{ Rng, CryptoRng }; -use serde::{ Serialize, Deserialize }; +use serde::{ Serialize, de::DeserializeOwned }; use crate::Envelope; pub trait AuthKeyExchange { - type PrivateKey: Serialize + for<'a> Deserialize<'a>; - type PublicKey: Serialize + for<'a> Deserialize<'a> + Clone; - type EphemeralKey: Serialize + for<'a> Deserialize<'a>; - type Message: Serialize + for<'a> Deserialize<'a> + Clone; + type PrivateKey: Serialize + DeserializeOwned; + type PublicKey: Serialize + DeserializeOwned + Clone; + type EphemeralKey: Serialize + DeserializeOwned; + type Message: Serialize + DeserializeOwned + Clone; const SHARED_LENGTH: usize;