/// Marker interface for [Iterable] subclasses that have an efficient
/// [length] implementation.

// @dart=2.9

abstract class EfficientLengthIterable<T> extends Iterable<T> {
  const EfficientLengthIterable();

  /// Returns the number of elements in the iterable.
  ///
  /// This is an efficient operation that doesn't require iterating through
  /// the elements.
  int get length;
}

/// Creates errors throw by [Iterable] when the element count is wrong.
abstract class IterableElementError {
  /// Error thrown thrown by, e.g., [Iterable.first] when there is no result.
  static StateError noElement() => StateError("No element");

  /// Error thrown by, e.g., [Iterable.single] if there are too many results.
  static StateError tooMany() => StateError("Too many elements");

  /// Error thrown by, e.g., [List.setRange] if there are too few elements.
  static StateError tooFew() => StateError("Too few elements");
}
