code: func (c *consulClientImpl) writeRetryFunc(f writeFunc) (*api.WriteMeta, error) {
  	var err error
  	var meta *api.WriteMeta
  	retry := false
  	c.runWithRetry(func() bool {
  		conn := c.conn
  		meta, err = f(conn)
  		retry, err = c.reconnectIfConnectionError(conn, err)
  		return retry
  	})
  	return meta, err
  }
docs: // writeRetryFunc runs writeFunc with retries if required