Move generic bounds to where clause

This commit is contained in:
Tim Kuehn
2016-02-23 08:26:56 -08:00
parent 396aec3c2f
commit d5b2f23f74

View File

@@ -18,8 +18,9 @@ use transport::{Dialer, Stream};
use transport::tcp::TcpDialer;
/// A client stub that connects to a server to run rpcs.
pub struct Client<Request, Reply, S: Stream>
where Request: serde::ser::Serialize
pub struct Client<Request, Reply, S>
where Request: serde::ser::Serialize,
S: Stream,
{
// The guard is in an option so it can be joined in the drop fn
reader_guard: Arc<Option<thread::JoinHandle<()>>>,
@@ -40,9 +41,10 @@ impl<Request, Reply> Client<Request, Reply, TcpStream>
}
}
impl<Request, Reply, S: Stream> Client<Request, Reply, S>
impl<Request, Reply, S> Client<Request, Reply, S>
where Request: serde::ser::Serialize + Send + 'static,
Reply: serde::de::Deserialize + Send + 'static
Reply: serde::de::Deserialize + Send + 'static,
S: Stream,
{
/// Create a new client that connects to `addr`. The client uses the given timeout
/// for both reads and writes.
@@ -107,8 +109,9 @@ impl<Request, Reply, S: Stream> Client<Request, Reply, S>
}
}
impl<Request, Reply, S: Stream> Drop for Client<Request, Reply, S>
where Request: serde::ser::Serialize
impl<Request, Reply, S> Drop for Client<Request, Reply, S>
where Request: serde::ser::Serialize,
S: Stream,
{
fn drop(&mut self) {
debug!("Dropping Client.");
@@ -195,11 +198,12 @@ impl<Reply> RpcFutures<Reply> {
}
}
fn write<Request, Reply, S: Stream>(outbound: Receiver<(Request, Sender<Result<Reply>>)>,
fn write<Request, Reply, S>(outbound: Receiver<(Request, Sender<Result<Reply>>)>,
requests: Arc<Mutex<RpcFutures<Reply>>>,
stream: S)
where Request: serde::Serialize,
Reply: serde::Deserialize
Reply: serde::Deserialize,
S: Stream,
{
let mut next_id = 0;
let mut stream = BufWriter::new(stream);
@@ -248,8 +252,9 @@ fn write<Request, Reply, S: Stream>(outbound: Receiver<(Request, Sender<Result<R
}
fn read<Reply, S: Stream>(requests: Arc<Mutex<RpcFutures<Reply>>>, stream: S)
where Reply: serde::Deserialize
fn read<Reply, S>(requests: Arc<Mutex<RpcFutures<Reply>>>, stream: S)
where Reply: serde::Deserialize,
S: Stream,
{
let mut stream = BufReader::new(stream);
loop {