in protocol.go [106:126]
func ParseBulkMessage(line []byte) ([]byte, error) {
if line[0] != MessageBulk {
return nil, ErrWrongMessage
}
delimiter := bytes.IndexByte(line, '\n')
n, err := strconv.ParseInt(string(line[1:delimiter-1]), 10, 64)
if err != nil {
return nil, err
}
if n <= 0 {
return nil, nil
}
if len(line) <= delimiter+1+int(n) {
return nil, ErrWrongMessage
}
return line[delimiter+1 : delimiter+1+int(n)], nil
}