From 8faee7dbea00f7a115ad8e27527f0c2c183266db Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sat, 24 Nov 2018 21:12:04 +0000 Subject: [PATCH] Rename {En,De}coder to LengthPrefixed{En,De}coder. --- src/proto/codec.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/proto/codec.rs b/src/proto/codec.rs index 566d882..f85afd2 100644 --- a/src/proto/codec.rs +++ b/src/proto/codec.rs @@ -13,11 +13,11 @@ use super::server::{ServerRequest, ServerResponse}; *===================================*/ // Encodes types that implement ProtoEncode with a length prefix. -pub struct Encoder { +pub struct LengthPrefixedEncoder { phantom: marker::PhantomData, } -impl Encoder { +impl LengthPrefixedEncoder { pub fn new() -> Self { Self { phantom: marker::PhantomData, @@ -25,7 +25,7 @@ impl Encoder { } } -impl tokio_codec::Encoder for Encoder { +impl tokio_codec::Encoder for LengthPrefixedEncoder { type Item = T; type Error = io::Error; @@ -47,7 +47,7 @@ impl tokio_codec::Encoder for Encoder { } // Decodes length-prefixed values from byte buffers. -pub struct Decoder { +pub struct LengthPrefixedDecoder { // The length, as a number of bytes, of the next item to decode. // None if we have not read the length prefix yet. // Some(n) if we read the length prefix, and are now waiting for `n` bytes @@ -58,7 +58,7 @@ pub struct Decoder { phantom: marker::PhantomData, } -impl Decoder { +impl LengthPrefixedDecoder { pub fn new() -> Self { Self { length: None, @@ -92,7 +92,7 @@ impl Decoder { } } -impl tokio_codec::Decoder for Decoder { +impl tokio_codec::Decoder for LengthPrefixedDecoder { type Item = T; type Error = io::Error; @@ -125,9 +125,7 @@ mod tests { use proto::ProtoEncode; - // Avoid name conflict with tokio_codec traits. - use super::Decoder as MyDecoder; - use super::Encoder as MyEncoder; + use super::{LengthPrefixedDecoder, LengthPrefixedEncoder}; // Test value: [1, 3, 3, 7] in little-endian. const U32_1337: u32 = 1 + (3 << 8) + (3 << 16) + (7 << 24); @@ -135,7 +133,7 @@ mod tests { #[test] fn encode_u32() { let mut bytes = BytesMut::new(); - MyEncoder::new().encode(U32_1337, &mut bytes).unwrap(); + LengthPrefixedEncoder::new().encode(U32_1337, &mut bytes).unwrap(); assert_eq!( bytes, @@ -151,7 +149,7 @@ mod tests { let v: Vec = vec![1, 3, 3, 7]; let mut bytes = BytesMut::new(); - MyEncoder::new().encode(v, &mut bytes).unwrap(); + LengthPrefixedEncoder::new().encode(v, &mut bytes).unwrap(); assert_eq!( bytes, @@ -172,7 +170,7 @@ mod tests { 4, 0, 0, // Incomplete 32-bit length prefix. ]); - let value: Option = MyDecoder::new().decode(&mut bytes).unwrap(); + let value: Option = LengthPrefixedDecoder::new().decode(&mut bytes).unwrap(); assert_eq!(value, None); assert_eq!(bytes, vec![4, 0, 0]); // Untouched. @@ -186,7 +184,7 @@ mod tests { 4, 2, // Trailing bytes. ]); - let value = MyDecoder::new().decode(&mut bytes).unwrap(); + let value = LengthPrefixedDecoder::new().decode(&mut bytes).unwrap(); assert_eq!(value, Some(U32_1337)); assert_eq!(bytes, vec![4, 2]); // Decoded bytes were split off. @@ -204,7 +202,7 @@ mod tests { 4, 2, // Trailing bytes. ]); - let value = MyDecoder::new().decode(&mut bytes).unwrap(); + let value = LengthPrefixedDecoder::new().decode(&mut bytes).unwrap(); let expected_value: Vec = vec![1, 3, 3, 7]; assert_eq!(value, Some(expected_value)); @@ -213,7 +211,7 @@ mod tests { #[test] fn decode_stateful() { - let mut decoder = MyDecoder::new(); + let mut decoder = LengthPrefixedDecoder::new(); let mut bytes = BytesMut::from(vec![ 4, 0, 0, 0, // 32-bit integer = 4 bytes. @@ -256,8 +254,8 @@ mod tests { let mut buffer = BytesMut::new(); - MyEncoder::new().encode(value.clone(), &mut buffer).unwrap(); - let decoded = MyDecoder::new().decode(&mut buffer).unwrap(); + LengthPrefixedEncoder::new().encode(value.clone(), &mut buffer).unwrap(); + let decoded = LengthPrefixedDecoder::new().decode(&mut buffer).unwrap(); assert_eq!(decoded, Some(value)); assert_eq!(buffer, vec![]);