Packages

Lazy, external iterators for Elixir.

Current section

Files

Jump to
iterex lib iter iterable empty.ex
Raw

lib/iter/iterable/empty.ex

defmodule Iter.Iterable.Empty do
defstruct []
@moduledoc """
An iterable that's always exhausted
"""
alias Iter.{Impl, IntoIterable, Iterable}
@opaque t :: %__MODULE__{}
@doc """
Creates an iterable that's always exhausted.
"""
@spec new :: t
def new, do: %__MODULE__{}
defimpl Iterable do
use Impl
@doc false
@impl true
def next(_), do: :done
@doc false
@impl true
def empty?(_), do: true
@doc false
@impl true
def count(_), do: 0
end
defimpl IntoIterable do
@doc false
def into_iterable(self), do: self
end
end