code: func (set RoleSet) AdjustClientIdleTimeout(timeout time.Duration) time.Duration {
  	if timeout < 0 {
  		timeout = 0
  	}
  	for _, role := range set {
  		roleTimeout := role.GetOptions().ClientIdleTimeout
  		// 0 means not set, so it can't be most restrictive, disregard it too
  		if roleTimeout.Duration() <= 0 {
  			continue
  		}
  		switch {
  		// in case if timeout is 0, means that incoming value
  		// does not restrict the idle timeout, pick any other value
  		// set by the role
  		case timeout == 0:
  			timeout = roleTimeout.Duration()
  		case roleTimeout.Duration() < timeout:
  			timeout = roleTimeout.Duration()
  		}
  	}
  	return timeout
  }
docs: // AdjustClientIdleTimeout adjusts requested idle timeout
  // to the lowest max allowed timeout, the most restrictive
  // option will be picked, negative values will be assumed as 0