code: func ReadUntil(r io.Reader, delim byte) ([]byte, error) {
  	if bufr, ok := r.(*bufio.Reader); ok {
  		return ReadUntilFromBufioReader(bufr, delim)
  	}
  
  	var buf [1]byte
  	value := make([]byte, 0, 16)
  	for {
  		if _, err := io.ReadFull(r, buf[:]); err != nil {
  			if err == io.EOF {
  				return nil, err
  			}
  
  			return nil, err
  		}
  
  		if buf[0] == delim {
  			return value, nil
  		}
  
  		value = append(value, buf[0])
  	}
  }
docs: // ReadUntil reads from r untin delim is found