From 94a5ba0229fff43b9677277e2493cd3be1986003 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sat, 22 Sep 2018 23:26:33 +0000 Subject: [PATCH] Implement tokio_codec::Encoder for all message types. --- src/proto/codec.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/proto/codec.rs b/src/proto/codec.rs index a805487..91f979a 100644 --- a/src/proto/codec.rs +++ b/src/proto/codec.rs @@ -1,19 +1,23 @@ use std::io; +use std::marker; use tokio_codec; use bytes::BytesMut; use super::base_codec::{ProtoEncode, ProtoEncoder}; -use super::server::ServerRequest; +use super::server::{ServerRequest,ServerResponse}; +use super::peer::Message; /*===================================* * TOKIO CODEC TRAIT IMPLEMENTATIONS * *===================================*/ -struct ServerRequestEncoder; +struct Encoder { + data: marker::PhantomData +} -impl tokio_codec::Encoder for ServerRequestEncoder { - type Item = ServerRequest; +impl tokio_codec::Encoder for Encoder { + type Item = T; type Error = io::Error; fn encode(&mut self, item: Self::Item, dst: &mut BytesMut) -> Result<(), Self::Error> { @@ -22,3 +26,7 @@ impl tokio_codec::Encoder for ServerRequestEncoder { Ok(()) } } + +pub type ServerRequestEncoder = Encoder; +pub type ServerResponseEncoder = Encoder; +pub type PeerMessageEncoder = Encoder;