Behaviour implemented by short-link providers.
Summary
Types
@type error() :: %{kind: error_kind(), reason: term()}
@type error_kind() :: :temporary | :permanent
Callbacks
@callback create_link( DripDrop.ShortLinks.Request.t(), keyword() ) :: {:ok, DripDrop.ShortLinks.Result.t()} | {:error, error()}