Backplane.JsonSchema.Sigil (backplane_json_schema v1.10.58)

Copy Markdown

Compile-time sigils for static JSON Schema literals.

The primary sigil is ~X, chosen to avoid the common ~J conflict with Jason while still feeling mnemonic for Backplane.JsonSchema.

The sigil body is parsed as Elixir, not JSON, so the most ergonomic form is an Elixir map or boolean literal.

Examples

iex> import Backplane.JsonSchema.Sigil, only: [sigil_X: 2]
iex> schema = ~X|%{"type" => "integer"}|
iex> Backplane.JsonSchema.validate(schema, 1)
:ok

iex> import Backplane.JsonSchema.Sigil, only: [sigil_X: 2]
iex> schema = ~X|%{"type" => "string", "format" => "email"}|f
iex> {:error, [_]} = Backplane.JsonSchema.validate(schema, "not-an-email")

Summary

Functions

Imports the ~X sigil for compile-time schema literals.

Compile-time sigil for Elixir schema literals.

Functions

__using__(opts)

(macro)

Imports the ~X sigil for compile-time schema literals.

sigil_X(arg1, modifiers)

(macro)

Compile-time sigil for Elixir schema literals.

Supported modifiers:

  • f — format_assertion: true
  • c — content_assertion: true