Mutare.Extension.Spec (mutare v0.1.0)

Copy Markdown View Source

A resolved non-mutating extension module and its per-instance options.

A bare module in :extensions resolves with empty options. A {module, opts} entry carries configuration to Mutare.UseExpansion.expand_use/3 through context.opts. Mutare.CallRouting callbacks never receive these options.

Summary

Functions

Resolve one :extensions entry to a spec. Capability validation is performed by Mutare.Extension.validate!/1.

Types

t()

@type t() :: %Mutare.Extension.Spec{module: module(), opts: keyword()}

Functions

new(spec)

@spec new(t() | module() | {module(), keyword()}) :: t()

Resolve one :extensions entry to a spec. Capability validation is performed by Mutare.Extension.validate!/1.

Examples

iex> Mutare.Extension.Spec.new(Enum)
%Mutare.Extension.Spec{module: Enum, opts: []}

iex> Mutare.Extension.Spec.new({Enum, [domain: "errors"]}).opts
[domain: "errors"]