internal__keyedMappedCopy<E extends M, K, M> function

KeyedIterable<E, K> internal__keyedMappedCopy<E extends M, K, M>(
  1. Iterable<M> elements,
  2. String getKeySpec,
  3. K getKey(
    1. E
    ),
  4. E toFrozen(
    1. M
    ),
)

Implementation

KeyedIterable<E, K> internal__keyedMappedCopy<E extends M, K, M>(
  Iterable<M> elements,
  String getKeySpec,
  K Function(E) getKey,
  E Function(M) toFrozen,
) {
  if (elements.isEmpty) {
    return KeyedIterable.empty;
  } else if (elements is _KeyedIterableImpl<E, K> &&
      elements._getKeySpec.isNotEmpty &&
      elements._getKeySpec == getKeySpec) {
    return elements;
  } else {
    return _KeyedIterableImpl<E, K>(
      elements.map(toFrozen).toList(growable: false),
      getKeySpec,
      getKey,
    );
  }
}