tryMerge method

Iterable<T>? tryMerge([
  1. Iterable<T> merge(
    1. Iterable<T>?,
    2. Iterable<T>?
    )?
])

Tries to merge the iterables, returning null if the outer iterable is empty. Exceptions thrown by merge (including Error subclasses) propagate to the caller.

Implementation

Iterable<T>? tryMerge([
  Iterable<T> Function(Iterable<T>?, Iterable<T>?)? merge,
]) {
  if (isEmpty) return null;
  return reduce(merge ?? (a, b) => <T>[...a ?? [], ...b ?? []]);
}