NativeElixirPdfUtilities.Diagnostics (native_elixir_pdf_utilities v0.6.0)
View SourceShared diagnostic helpers for public API errors.
Public operations return diagnostic errors as {:error, {reason, diagnostic}}
when the library can explain why an operation cannot continue. The diagnostic
map always includes :stage, :reason, and :message, and may include
actionable context such as :operation, :module, :line, :column, or
:source.
Summary
Functions
Builds a diagnostic map for a public API failure.
Builds a standard {:error, {reason, diagnostic}} result.
Adds operation, module, or source context to an existing diagnostic map.
Types
@type detailed_error() :: {atom(), diagnostic()}
@type diagnostic() :: %{ :stage => atom(), :reason => atom(), :message => String.t(), optional(:operation) => atom(), optional(:module) => module(), optional(:line) => pos_integer(), optional(:column) => pos_integer(), optional(:source) => String.t() }
@type diagnostic_option() :: {:operation, atom()} | {:module, module()} | {:line, pos_integer()} | {:column, pos_integer()} | {:source, String.t()} | {:source, nil}
Functions
@spec diagnostic(atom(), atom(), String.t(), [diagnostic_option()]) :: diagnostic()
Builds a diagnostic map for a public API failure.
@spec error(atom(), atom(), String.t(), [diagnostic_option()]) :: {:error, detailed_error()}
Builds a standard {:error, {reason, diagnostic}} result.
@spec with_context(diagnostic(), [diagnostic_option()]) :: diagnostic()
Adds operation, module, or source context to an existing diagnostic map.