DprintMarkdownFormatter.Validator (dprint_markdown_formatter v0.3.0)
View SourceInput validation utilities for DprintMarkdownFormatter.
Provides comprehensive validation for all inputs including content, options, and configuration values.
Summary
Functions
Validates a configuration struct.
Validates content input for formatting.
Validates formatting options.
Functions
@spec validate_config(term()) :: validation_result(DprintMarkdownFormatter.Config.t())
Validates a configuration struct.
Examples
iex> config = %DprintMarkdownFormatter.Config{}
iex> DprintMarkdownFormatter.Validator.validate_config(config)
{:ok, config}
Validates content input for formatting.
Examples
iex> DprintMarkdownFormatter.Validator.validate_content("# Hello")
{:ok, "# Hello"}
iex> DprintMarkdownFormatter.Validator.validate_content("")
{:ok, ""}
iex> DprintMarkdownFormatter.Validator.validate_content(nil)
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}
Validates formatting options.
Ensures that options are provided as a keyword list and all values are valid. Unknown options are allowed for forward compatibility.
Examples
iex> DprintMarkdownFormatter.Validator.validate_options([line_width: 80])
{:ok, [line_width: 80]}
iex> DprintMarkdownFormatter.Validator.validate_options([line_width: 80, text_wrap: :never])
{:ok, [line_width: 80, text_wrap: :never]}
iex> DprintMarkdownFormatter.Validator.validate_options(%{line_width: 80})
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}
iex> DprintMarkdownFormatter.Validator.validate_options([line_width: -1])
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}