ToonEx.Encode.Options (toon_ex v1.1.0)

Copy Markdown View Source

Validation and normalization of encoding options.

Summary

Types

Validated encoding options

Functions

Returns the options schema.

Validates and normalizes encoding options.

Validates and normalizes encoding options, raising on error.

Types

validated()

@type validated() :: %{
  indent: pos_integer(),
  delimiter: String.t(),
  length_marker: String.t() | nil,
  key_order: term(),
  indent_string: String.t()
}

Validated encoding options

Functions

schema()

@spec schema() :: keyword()

Returns the options schema.

validate(opts)

@spec validate(keyword()) :: {:ok, map()} | {:error, ToonEx.Options.Validator.t()}

Validates and normalizes encoding options.

Examples

iex> ToonEx.Encode.Options.validate([])
{:ok, %{indent: 2, delimiter: ",", length_marker: nil, indent_string: "  "}}

iex> ToonEx.Encode.Options.validate(indent: 4, delimiter: "\t")
{:ok, %{indent: 4, delimiter: "\t", length_marker: nil, indent_string: "    "}}

iex> match?({:error, _}, ToonEx.Encode.Options.validate(indent: -1))
true

iex> match?({:error, _}, ToonEx.Encode.Options.validate(delimiter: "invalid"))
true

validate!(opts)

@spec validate!(keyword()) :: validated()

Validates and normalizes encoding options, raising on error.

Examples

iex> ToonEx.Encode.Options.validate!([])
%{indent: 2, delimiter: ",", length_marker: nil, indent_string: "  "}

iex> ToonEx.Encode.Options.validate!(indent: 4)
%{indent: 4, delimiter: ",", length_marker: nil, indent_string: "    "}