code: func TLSDataFromFiles(caPath, certPath, keyPath string) (*TLSData, error) {
  	var (
  		ca, cert, key []byte
  		err           error
  	)
  	if caPath != "" {
  		if ca, err = ioutil.ReadFile(caPath); err != nil {
  			return nil, err
  		}
  	}
  	if certPath != "" {
  		if cert, err = ioutil.ReadFile(certPath); err != nil {
  			return nil, err
  		}
  	}
  	if keyPath != "" {
  		if key, err = ioutil.ReadFile(keyPath); err != nil {
  			return nil, err
  		}
  	}
  	if ca == nil && cert == nil && key == nil {
  		return nil, nil
  	}
  	return &TLSData{CA: ca, Cert: cert, Key: key}, nil
  }
docs: // TLSDataFromFiles reads files into a TLSData struct (or returns nil if all paths are empty)