-module(tomlet@ast). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/tomlet/ast.gleam"). -export_type([trivia/0, table/0, header/0, header_kind/0, entry/0, key/0, key_segment/0, value/0, special_float/0, string_style/0, array_item/0, inline_table_entry/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(false). -type trivia() :: {trivia, binary()}. -type table() :: {table, list(entry()), gleam@option:option(header())}. -type header() :: {header, key(), header_kind(), trivia()}. -type header_kind() :: standard_table | array_of_tables_header. -type entry() :: {key_value, trivia(), key(), value(), trivia()} | {table_header, header()} | {comment, binary()} | blank_line. -type key() :: {key, list(key_segment())}. -type key_segment() :: {bare_key_segment, binary()} | {quoted_key_segment, binary(), binary()}. -type value() :: {int, integer(), binary()} | {float, float(), binary()} | {special_float, special_float(), binary()} | {bool, boolean(), binary()} | {string, binary(), string_style(), binary()} | {date, binary()} | {time, binary()} | {date_time, binary()} | {array, list(array_item()), binary()} | {inline_table, list(inline_table_entry()), binary()} | {array_of_tables, list(table())}. -type special_float() :: positive_infinity | negative_infinity | not_a_number. -type string_style() :: basic_string | literal_string | multi_basic_string | multi_literal_string. -type array_item() :: {array_item, trivia(), value(), trivia()}. -type inline_table_entry() :: {inline_table_entry, trivia(), key(), value(), trivia()}.