-module(molt@error). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/molt/error.gleam"). -export([describe_error/1, not_found/1, not_found_path/1, not_found_path2/2, not_found_path3/3]). -export_type([molt_error/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type molt_error() :: {parse_error, binary(), integer()} | invalid_source_encoding | {invalid_path, binary()} | {value_parse_error, gleam@option:option(binary()), binary()} | invalid_document | {not_found, binary(), binary()} | {already_exists, binary(), molt@types:index_entry()} | {index_out_of_range, binary(), integer(), integer()} | {value_index_out_of_range, integer(), integer()} | {value_key_not_found, binary()} | {type_mismatch, gleam@option:option(binary()), binary(), binary()} | {invalid_toml_value, binary(), binary()} | {invalid_operation, binary(), gleam@option:option(binary())} | {update_error, binary()}. -file("src/molt/error.gleam", 62). ?DOC(" Describe an error as a human-readable string.\n"). -spec describe_error(molt_error()) -> binary(). describe_error(Error) -> case Error of {parse_error, Message, Offset} -> <<<<<<"Parsing failed at offset "/utf8, (erlang:integer_to_binary(Offset))/binary>>/binary, ": "/utf8>>/binary, Message/binary>>; invalid_source_encoding -> <<"The raw source provided for parsing is not valid UTF-8 data"/utf8>>; {invalid_path, Message@1} -> <<"Invalid path: "/utf8, Message@1/binary>>; {value_parse_error, {some, Expected}, Text} -> <<<<<<"Error parsing value for type "/utf8, Expected/binary>>/binary, " but got text: "/utf8>>/binary, Text/binary>>; {value_parse_error, none, Text@1} -> <<"Error parsing value for any valid TOML type from text: "/utf8, Text@1/binary>>; invalid_document -> <<"The operation is not allowed because the document has validation errors"/utf8>>; {not_found, Path, At} when Path =/= At -> <<<<<<<<"Nothing found at path "/utf8, Path/binary>>/binary, " (resolution stopped at "/utf8>>/binary, At/binary>>/binary, ")."/utf8>>; {not_found, Path@1, _} -> <<<<"Nothing found at path "/utf8, Path@1/binary>>/binary, "."/utf8>>; {already_exists, Path@2, Current} -> <<<<<<<<"An item with type "/utf8, (molt@internal@utils:index_entry_to_string(Current))/binary>>/binary, " already exists at path "/utf8>>/binary, Path@2/binary>>/binary, "."/utf8>>; {index_out_of_range, Path@3, Index, Length} -> <<<<<<<<<<"Index "/utf8, (erlang:integer_to_binary(Index))/binary>>/binary, " out of range for array of size "/utf8>>/binary, (erlang:integer_to_binary(Length))/binary>>/binary, " at path "/utf8>>/binary, Path@3/binary>>; {value_index_out_of_range, Index@1, Length@1} -> <<<<<<"Index "/utf8, (erlang:integer_to_binary(Index@1))/binary>>/binary, " out of range for value array of size "/utf8>>/binary, (erlang:integer_to_binary(Length@1))/binary>>; {value_key_not_found, Key} -> <<<<"Key \""/utf8, Key/binary>>/binary, "\" not found in value table"/utf8>>; {type_mismatch, none, Expected@1, Got} -> <<<<<<"Expected type "/utf8, Expected@1/binary>>/binary, " but got type "/utf8>>/binary, Got/binary>>; {type_mismatch, {some, Path@4}, Expected@2, Got@1} -> <<<<<<<<<<"Expected type "/utf8, Expected@2/binary>>/binary, " at path "/utf8>>/binary, Path@4/binary>>/binary, ", but got type "/utf8>>/binary, Got@1/binary>>; {invalid_toml_value, Path@5, Text@2} -> <<<<<<"Invalid TOML value \""/utf8, Text@2/binary>>/binary, "\" at path "/utf8>>/binary, Path@5/binary>>; {invalid_operation, Operation, none} -> <<<<"Operation "/utf8, Operation/binary>>/binary, " is not valid."/utf8>>; {invalid_operation, Operation@1, {some, Reason}} -> <<<<<<<<"Operation "/utf8, Operation@1/binary>>/binary, " is not valid: "/utf8>>/binary, Reason/binary>>/binary, "."/utf8>>; {update_error, Message@2} -> <<"Update error: "/utf8, Message@2/binary>> end. -file("src/molt/error.gleam", 121). ?DOC(false). -spec not_found(binary()) -> molt_error(). not_found(Str) -> {not_found, Str, Str}. -file("src/molt/error.gleam", 126). ?DOC(false). -spec not_found_path(list(molt@types:path_segment())) -> molt_error(). not_found_path(Segments) -> _pipe = molt@internal@utils:path_to_string(Segments), not_found(_pipe). -file("src/molt/error.gleam", 132). ?DOC(false). -spec not_found_path2( list(molt@types:path_segment()), list(molt@types:path_segment()) ) -> molt_error(). not_found_path2(Remaining, Visited) -> Visited@1 = lists:reverse(Visited), _pipe = molt@internal@utils:path_to_string(Remaining), {not_found, _pipe, molt@internal@utils:path_to_string(Visited@1)}. -file("src/molt/error.gleam", 143). ?DOC(false). -spec not_found_path3( list(molt@types:path_segment()), list(molt@types:path_segment()), list(molt@types:path_segment()) ) -> molt_error(). not_found_path3(Segments, Rest, Visited) -> Visited@1 = lists:reverse(Visited), _pipe = lists:append([Visited@1, Segments, Rest]), _pipe@1 = molt@internal@utils:path_to_string(_pipe), {not_found, _pipe@1, molt@internal@utils:path_to_string(Visited@1)}.