lib/envio.ex

defmodule Envio do
  @moduledoc """
  Main interface to Envio.

  Provides handy functions to publish messages, subscribe to messages, etc.
  """

  @spec register(atom() | {atom(), atom()}, list({atom(), Envio.Channel.t()})) ::
          :ok | {:error, {:already_registered, Envio.Channel.t()}}
  def register(host, channels), do: Envio.Channels.register(host, channels)
end