code: func IsSaltpackBinary(stream *bufio.Reader) (msgType MessageType, version Version, err error) {
  
  	b, err := stream.Peek(minLengthToIdentifyBinarySaltpack)
  	if err == bufio.ErrBufferFull {
  		return MessageTypeUnknown, Version{}, ErrShortSliceOrBuffer
  	}
  	if err != nil {
  		return MessageTypeUnknown, Version{}, err
  	}
  	return IsSaltpackBinarySlice(b)
  }
docs: // IsSaltpackBinary peeks into the provided bufio.Reader to determine whether it encodes a binary saltpack message.
  // It does not consume any of the reader's bytes (whose buffer length must be at least minLengthToIdentifyBinarySaltpack). It returns a non nil error if the buffer
  // size of the reader is not large enough (ErrShortSliceOrBuffer), or if the stream does not appear to contain a binary
  // saltpack message. If err is nil, msgType will return the type of the encoded message, but this does *NOT* guarantee that the
  // rest of the message is well formed.