code: func (r *Reader) readUntil(delim byte) ([]byte, error) {
  	var buf [1]byte
  	value := make([]byte, 0, 16)
  	for {
  		if n, err := r.zlib.Read(buf[:]); err != nil && (err != io.EOF || n == 0) {
  			if err == io.EOF {
  				return nil, ErrHeader
  			}
  			return nil, err
  		}
  
  		if buf[0] == delim {
  			return value, nil
  		}
  
  		value = append(value, buf[0])
  	}
  }
docs: // readSlice reads one byte at a time from r until it encounters delim or an
  // error.