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
@type validated() :: %{ indent: pos_integer(), delimiter: String.t(), length_marker: String.t() | nil, key_order: term(), indent_string: String.t() }
Validated encoding options
Functions
@spec schema() :: keyword()
Returns the options schema.
@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
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: " "}