code: func SelectOneOf(protos []string, rwc io.ReadWriteCloser) (string, error) {
  	err := handshake(rwc)
  	if err != nil {
  		return "", err
  	}
  
  	for _, p := range protos {
  		err := trySelect(p, rwc)
  		switch err {
  		case nil:
  			return p, nil
  		case ErrNotSupported:
  		default:
  			return "", err
  		}
  	}
  	return "", ErrNotSupported
  }
docs: // SelectOneOf will perform handshakes with the protocols on the given slice
  // until it finds one which is supported by the muxer.