pub fn pack<T>(t: &T) -> Result<BytesMut, PackError>where T: Pack,
pack T and return a bytesmut from the global thread local buffer