lib/instream/writer.ex
defmodule Instream.Writer do
@moduledoc """
Point writer behaviour.
"""
alias Instream.Encoder.Line
alias Instream.HTTPClient
@optional_callbacks [
writer_workers: 1
]
@doc """
Writes a point.
"""
@callback write(payload :: [Line.point()], opts :: Keyword.t(), conn :: module) ::
HTTPClient.response()
@doc """
Optional list of workers to be supervised by the connection.
"""
@callback writer_workers(conn :: module) :: [:supervisor.child_spec() | {module, term} | module]
end