func (r *RESPReader) ReadRaw() ([]byte, error) {
	line, err := r.readLine()
	if err != nil {
		return nil, err
	}
	switch line[0] {
	case SIMPLE_STRING, INTEGER, ERROR:
		return line, nil
	case BULK_STRING:
		return r.readBulkString(line)
	case ARRAY:
		return r.readArray(line)
	default:
		return nil, ErrInvalidSyntax
	}
}
ReadRaw reads the raw byte slice.
package main
import (
	"bufio"
	"bytes"
	"errors"
	"io"
	"strconv"
)
const (
	SIMPLE_STRING = '+'
	BULK_STRING   = '$'
	INTEGER       = ':'
	ARRAY         = '*'
	ERROR         = '-'
)
var (
	ErrInvalidSyntax = errors.New("resp: invalid syntax")
)
type RESPReader struct {
	*bufio.Reader
}
func NewRESPReader(reader io.Reader, bufSize int) *RESPReader {
	return &RESPReader{
		Reader: bufio.NewReaderSize(reader, bufSize),
	}
}