code: @NullSafe
    public static long count(Iterable<?> iterable) {
      return iterable instanceof Collection ? ((Collection) iterable).size() : count(iterable, (element) -> true);
    }
docs: Counts the number of elements in the {@link Iterable} collection.  If {@link Iterable} is null or contains
  no elements, then count will be 0.  If the {@link Iterable} is a {@link Collection}, then {@link Collection#size()}
  is returned, otherwise the elements of the {@link Iterable} are iterated over, counting the number of elements
  in the iteration in order to determine it's size.
  
  @param iterable {@link Iterable} collection of elements being evaluated.
  @return an integer value indicating the number of elements in the {@link Iterable} collection (i.e. size).
  @see java.lang.Iterable
  @see java.util.Collection#size()
  @see #count(Iterable, Filter)