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