return buf;
}
+template char *Protocol::BasicSerializer<bool>::serialize(const bool &, char *, char *) const;
template char *Protocol::BasicSerializer<Int8>::serialize(const Int8 &, char *, char *) const;
template char *Protocol::BasicSerializer<Int16>::serialize(const Int16 &, char *, char *) const;
template char *Protocol::BasicSerializer<Int32>::serialize(const Int32 &, char *, char *) const;
template char *Protocol::BasicSerializer<UInt64>::serialize(const UInt64 &, char *, char *) const;
template char *Protocol::BasicSerializer<float>::serialize(const float &, char *, char *) const;
template char *Protocol::BasicSerializer<double>::serialize(const double &, char *, char *) const;
+template const char *Protocol::BasicSerializer<bool>::deserialize(bool &, const char *, const char *) const;
template const char *Protocol::BasicSerializer<Int8>::deserialize(Int8 &, const char *, const char *) const;
template const char *Protocol::BasicSerializer<Int16>::deserialize(Int16 &, const char *, const char *) const;
template const char *Protocol::BasicSerializer<Int32>::deserialize(Int32 &, const char *, const char *) const;
typedef CompoundSerializer<T> Serializer;
};
+template<> struct Protocol::Traits<bool>: BasicTraits<bool, 'B'> { };
template<> struct Protocol::Traits<Int8>: BasicTraits<Int8, 'I'> { };
template<> struct Protocol::Traits<UInt8>: BasicTraits<UInt8, 'U'> { };
template<> struct Protocol::Traits<Int16>: BasicTraits<Int16, 'I'> { };