defmodule IO.ANSI.Table.SpecSup do
use Supervisor
alias __MODULE__
alias IO.ANSI.Table.{DynSpecSup, SpecRecovery}
@spec start_link(term) :: Supervisor.on_start()
def start_link(:ok), do: Supervisor.start_link(SpecSup, :ok, name: SpecSup)
## Callbacks
@spec init(term) ::
{:ok, {:supervisor.sup_flags(), [:supervisor.child_spec()]}} | :ignore
def init(:ok) do
[
# Child spec relying on `use DynamicSupervisor`...
{DynSpecSup, :ok},
# Child spec relying on `use GenServer`...
{SpecRecovery, :ok}
]
|> Supervisor.init(strategy: :rest_for_one)
end
end