-module(molt@types). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/molt/types.gleam"). -export_type([path_segment/0, toml_version/0, index_entry/0, span/0, syntax_error_kind/0, syntax_error/0, document/0, toml_kind/0, index_key/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. ?MODULEDOC(" Shared types for molt, molt/cst, molt/ops, and molt/value.\n"). -type path_segment() :: {key_segment, binary()} | {index_segment, integer()}. -opaque toml_version() :: {toml_version, binary()}. -type index_entry() :: {index_table, list(binary())} | {index_array_of_tables, integer(), list(binary())} | {index_array_of_tables_entry, list(path_segment()), integer(), list(binary())} | {index_implicit_table, list(binary())} | {index_scalar_value, list(path_segment())} | {index_inline_table_value, list(path_segment())} | {index_array_value, list(path_segment())}. -type span() :: {span, integer(), integer(), integer()}. -type syntax_error_kind() :: {duplicate_key, binary(), span()} | {duplicate_table, span()} | {key_is_scalar, binary(), span()} | {key_is_inline_table, binary(), span()} | {key_is_array, binary(), span()} | invalid_key_syntax | missing_value | extra_equals | multiple_values | empty_table_header | malformed_table_header | unterminated_array | misplaced_array_separator | unterminated_inline_table | {duplicate_key_in_inline_table, binary()} | invalid_bare_value_in_inline_table | misplaced_inline_table_separator | unterminated_string | unterminated_multiline_string | {bad_value, binary()} | unparsable_content | no_valid_toml_structure. -type syntax_error() :: {syntax_error, syntax_error_kind(), list(binary()), span()}. -type document() :: {document, toml_version(), integer(), greenwood:node_(toml_kind()), gleam@option:option(gleam@dict:dict(index_key(), index_entry()))}. -type toml_kind() :: root | table | array_of_tables | key_value | key | array | inline_table | array_element | error | post_script | bom | bare_key | invalid_value | invalid_basic_string | invalid_literal_string | invalid_multiline_basic_string | invalid_multiline_literal_string | basic_string | multiline_basic_string | multiline_basic_string_nl | literal_string | multiline_literal_string | multiline_literal_string_nl | integer | binary_integer | hex_integer | octal_integer | float | bool_true | bool_false | inf | pos_inf | neg_inf | na_n | pos_na_n | neg_na_n | offset_date_time | local_date_time | local_date | local_time | equals | dot | comma | left_bracket | right_bracket | left_brace | right_brace | comment | whitespace | newline. -type index_key() :: {index_key, list(path_segment())}.