Files
feed_reader/lib/feed_reader/session.ex
T

26 lines
753 B
Elixir

defmodule FeedReader.Session do
@moduledoc """
A one-pass event stream over a feed.
Remote sessions own the temporary source used by the event stream and must
be closed by callers in an `after` block when enumeration is not completed.
`FeedReader.close/1` is idempotent. Local sessions have no HTTP metadata and
therefore set `fetch` to `nil`; their caller-owned source is never removed.
"""
alias FeedReader.Fetch
@type event ::
{:feed, FeedReader.Feed.t()}
| {:item, FeedReader.Item.t()}
| {:error, term()}
@type t :: %__MODULE__{
events: Enumerable.t(),
fetch: Fetch.t() | nil,
resource: map() | nil
}
defstruct events: nil, fetch: nil, resource: nil
end