-module(kitazith@validation). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/kitazith/validation.gleam"). -export([message/1]). -export_type([validation_error/0, validation_reason/0]). -type validation_error() :: {validation_error, binary(), validation_reason()}. -type validation_reason() :: {string_length_out_of_range, integer(), integer(), integer()} | {string_length_exceeded, integer(), integer()} | {list_length_exceeded, integer(), integer(), binary()} | {aggregate_character_limit_exceeded, binary(), integer(), integer()} | {aggregate_component_limit_exceeded, integer(), integer()} | {component_count_out_of_range, integer(), integer(), integer(), binary()} | {numeric_maximum_exceeded, integer(), integer(), binary()} | {numeric_out_of_range, integer(), integer(), integer(), binary()} | {missing_attachment_reference, binary()} | attachment_reference_missing_filename | attachment_reference_required | {duplicate_attachment_filename, binary(), list(integer())} | {mutually_exclusive_with, binary()} | {requires_flag, binary()}. -file("src/kitazith/validation.gleam", 28). -spec message(validation_error()) -> binary(). message(Error) -> case erlang:element(3, Error) of {string_length_out_of_range, Min, Max, _} -> <<<<<<<<"must be between "/utf8, (erlang:integer_to_binary(Min))/binary>>/binary, " and "/utf8>>/binary, (erlang:integer_to_binary(Max))/binary>>/binary, " characters"/utf8>>; {string_length_exceeded, Max@1, _} -> <<<<"must be at most "/utf8, (erlang:integer_to_binary(Max@1))/binary>>/binary, " characters"/utf8>>; {list_length_exceeded, Max@2, _, Item_label} -> <<<<<<"must contain at most "/utf8, (erlang:integer_to_binary(Max@2))/binary>>/binary, " "/utf8>>/binary, Item_label/binary>>; {aggregate_character_limit_exceeded, Limit_label, Max@3, _} -> case Limit_label of <<"embed_total_characters"/utf8>> -> <<<<"must contain at most "/utf8, (erlang:integer_to_binary(Max@3))/binary>>/binary, " total characters across titles, descriptions, field names, field values, footer texts, and author names"/utf8>>; _ -> <<<<<<"must be at most "/utf8, (erlang:integer_to_binary(Max@3))/binary>>/binary, " for "/utf8>>/binary, Limit_label/binary>> end; {aggregate_component_limit_exceeded, Max@4, _} -> <<<<"must contain at most "/utf8, (erlang:integer_to_binary(Max@4))/binary>>/binary, " total components"/utf8>>; {component_count_out_of_range, Min@1, Max@5, _, Item_label@1} -> <<<<<<<<<<"must contain between "/utf8, (erlang:integer_to_binary(Min@1))/binary>>/binary, " and "/utf8>>/binary, (erlang:integer_to_binary(Max@5))/binary>>/binary, " "/utf8>>/binary, Item_label@1/binary>>; {numeric_maximum_exceeded, Max@6, _, Unit} -> <<<<<<"must be at most "/utf8, (erlang:integer_to_binary(Max@6))/binary>>/binary, " "/utf8>>/binary, Unit/binary>>; {numeric_out_of_range, Min@2, Max@7, _, Unit@1} -> <<<<<<<<<<"must be between "/utf8, (erlang:integer_to_binary(Min@2))/binary>>/binary, " and "/utf8>>/binary, (erlang:integer_to_binary(Max@7))/binary>>/binary, " "/utf8>>/binary, Unit@1/binary>>; {missing_attachment_reference, Filename} -> <<<<"references attachment `"/utf8, Filename/binary>>/binary, "` that is not present in attachments"/utf8>>; attachment_reference_missing_filename -> <<"must include a filename after `attachment://`"/utf8>>; attachment_reference_required -> <<"must use an `attachment://` reference"/utf8>>; {duplicate_attachment_filename, Filename@1, Indexes} -> <<<<<<"contains duplicate attachment filename `"/utf8, Filename@1/binary>>/binary, "` at indexes "/utf8>>/binary, (begin _pipe = Indexes, _pipe@1 = gleam@list:map( _pipe, fun erlang:integer_to_binary/1 ), gleam@string:join(_pipe@1, <<", "/utf8>>) end)/binary>>; {mutually_exclusive_with, Other_path} -> <<<<"must not be used together with `"/utf8, Other_path/binary>>/binary, "`"/utf8>>; {requires_flag, Flag_name} -> <<<<"requires the `"/utf8, Flag_name/binary>>/binary, "` flag"/utf8>> end.