code: func (options PoolOptions) WithIdleTimeout(timeout time.Duration) PoolOptions {
  	options.IdleTimeout = timeout
  	return options
  }
docs: // WithIdleTimeout returns a new copy of the options with the IdleTimeout
  // property set to the given value. It does not mutate the original options.