lib/strategy.ex
defmodule Spandex.Strategy do
@moduledoc """
The behaviour for a storage strategy for storing an ongoing trace.
"""
@type tracer :: module
alias Spandex.Trace
@callback delete_trace(tracer) :: {:ok, Trace.t()} | {:error, term}
@callback get_trace(tracer) :: {:ok, Trace.t()} | {:error, term}
@callback put_trace(tracer, Trace.t()) :: {:ok, Trace.t()} | {:error, term}
@callback trace_active?(tracer) :: boolean
end