diff --git a/README.md b/README.md index 267906c..81aff86 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,12 @@ *Disclaimer*: This is not an official Google product. -tarpc is an RPC framework for rust with a focus on ease of use. Defining and implementing an echo-like server can be done in just a few lines of code: +tarpc is an RPC framework for rust with a focus on ease of use. Defining a service can be done in +just a few lines of code, and most of the boilerplate of writing a server is taken care of for you. +[Documentation](https://google.github.io/tarpc) + +## Example ```rust #[macro_use] extern crate tarpc; diff --git a/tarpc/src/macros.rs b/tarpc/src/macros.rs index b25c0cf..54c626a 100644 --- a/tarpc/src/macros.rs +++ b/tarpc/src/macros.rs @@ -144,6 +144,7 @@ macro_rules! impl_deserialize { impl $crate::macros::serde::de::Visitor for __FieldVisitor { type Value = __Field; + #[inline] fn visit_usize(&mut self, value: usize) -> ::std::result::Result<__Field, E> where E: $crate::macros::serde::de::Error, @@ -166,6 +167,7 @@ macro_rules! impl_deserialize { impl $crate::macros::serde::de::EnumVisitor for __Visitor { type Value = $impler; + #[inline] fn visit<__V>(&mut self, mut visitor: __V) -> ::std::result::Result<$impler, __V::Error> where __V: $crate::macros::serde::de::VariantVisitor diff --git a/tarpc/src/protocol/packet.rs b/tarpc/src/protocol/packet.rs index 63c351a..5a120a4 100644 --- a/tarpc/src/protocol/packet.rs +++ b/tarpc/src/protocol/packet.rs @@ -32,6 +32,7 @@ struct MapVisitor<'a, T: 'a> { } impl <'a, T: Serialize> ser::MapVisitor for MapVisitor<'a, T> { + #[inline] fn visit(&mut self, serializer: &mut S) -> Result, S::Error> where S: Serializer { @@ -49,9 +50,15 @@ impl <'a, T: Serialize> ser::MapVisitor for MapVisitor<'a, T> { } } } + + #[inline] + fn len(&self) -> Option { + Some(2) + } } impl Deserialize for Packet { + #[inline] fn deserialize(deserializer: &mut D) -> Result where D: Deserializer { @@ -65,6 +72,7 @@ struct Visitor(PhantomData); impl de::Visitor for Visitor { type Value = Packet; + #[inline] fn visit_seq(&mut self, mut visitor: V) -> Result, V::Error> where V: de::SeqVisitor {