code: func (c *Config) restoreVimClient(client *vim25.Client) (bool, error) {
  	if !c.Persist {
  		return false, nil
  	}
  
  	p, err := c.vimSessionFile()
  	if err != nil {
  		return false, err
  	}
  	log.Printf("[DEBUG] Attempting to locate SOAP client session data in %q", p)
  	f, err := os.Open(p)
  	if err != nil {
  		if os.IsNotExist(err) {
  			log.Printf("[DEBUG] SOAP client session data not found in %q", p)
  			return false, nil
  		}
  
  		return false, err
  	}
  
  	defer func() {
  		if err = f.Close(); err != nil {
  			log.Printf("[DEBUG] Error closing SOAP client session file %q: %s", p, err)
  		}
  	}()
  
  	dec := json.NewDecoder(f)
  	err = dec.Decode(client)
  	if err != nil {
  		return false, err
  	}
  
  	return true, nil
  }
docs: // restoreVimClient loads the saved session from disk. Note that this is a helper
  // function to LoadVimClient and should not be called directly.