hashValues function

int hashValues (Object arg01, [ Object arg02, [ Object arg03 = _hashEnd Object arg04 = _hashEnd Object arg05 = _hashEnd Object arg06 = _hashEnd Object arg07 = _hashEnd Object arg08 = _hashEnd Object arg09 = _hashEnd Object arg10 = _hashEnd Object arg11 = _hashEnd Object arg12 = _hashEnd Object arg13 = _hashEnd Object arg14 = _hashEnd Object arg15 = _hashEnd Object arg16 = _hashEnd Object arg17 = _hashEnd Object arg18 = _hashEnd Object arg19 = _hashEnd Object arg20 = _hashEnd ])

Combine up to twenty objects' hash codes into one value.

If you only need to handle one object's hash code, then just refer to its Object.hashCode getter directly.

If you need to combine an arbitrary number of objects from a List or other Iterable, use hashList. The output of hashList can be used as one of the arguments to this function.

For example:

int hashCode => hashValues(foo, bar, hashList(quux), baz);

Implementation

int hashValues(
  Object arg01,            Object arg02,          [ Object arg03 = _hashEnd,
  Object arg04 = _hashEnd, Object arg05 = _hashEnd, Object arg06 = _hashEnd,
  Object arg07 = _hashEnd, Object arg08 = _hashEnd, Object arg09 = _hashEnd,
  Object arg10 = _hashEnd, Object arg11 = _hashEnd, Object arg12 = _hashEnd,
  Object arg13 = _hashEnd, Object arg14 = _hashEnd, Object arg15 = _hashEnd,
  Object arg16 = _hashEnd, Object arg17 = _hashEnd, Object arg18 = _hashEnd,
  Object arg19 = _hashEnd, Object arg20 = _hashEnd ]) {
  int result = 0;
  result = _Jenkins.combine(result, arg01);
  result = _Jenkins.combine(result, arg02);
  if (arg03 != _hashEnd) {
    result = _Jenkins.combine(result, arg03);
    if (arg04 != _hashEnd) {
      result = _Jenkins.combine(result, arg04);
      if (arg05 != _hashEnd) {
        result = _Jenkins.combine(result, arg05);
        if (arg06 != _hashEnd) {
          result = _Jenkins.combine(result, arg06);
          if (arg07 != _hashEnd) {
            result = _Jenkins.combine(result, arg07);
            if (arg08 != _hashEnd) {
              result = _Jenkins.combine(result, arg08);
              if (arg09 != _hashEnd) {
                result = _Jenkins.combine(result, arg09);
                if (arg10 != _hashEnd) {
                  result = _Jenkins.combine(result, arg10);
                  if (arg11 != _hashEnd) {
                    result = _Jenkins.combine(result, arg11);
                    if (arg12 != _hashEnd) {
                      result = _Jenkins.combine(result, arg12);
                      if (arg13 != _hashEnd) {
                        result = _Jenkins.combine(result, arg13);
                        if (arg14 != _hashEnd) {
                          result = _Jenkins.combine(result, arg14);
                          if (arg15 != _hashEnd) {
                            result = _Jenkins.combine(result, arg15);
                            if (arg16 != _hashEnd) {
                              result = _Jenkins.combine(result, arg16);
                              if (arg17 != _hashEnd) {
                                result = _Jenkins.combine(result, arg17);
                                if (arg18 != _hashEnd) {
                                  result = _Jenkins.combine(result, arg18);
                                  if (arg19 != _hashEnd) {
                                    result = _Jenkins.combine(result, arg19);
                                    if (arg20 != _hashEnd) {
                                      result = _Jenkins.combine(result, arg20);
                                      // I can see my house from here!
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return _Jenkins.finish(result);
}