-module(oaspec@codegen@ir). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/oaspec/codegen/ir.gleam"). -export([module/3, module_with_header_records/4, module_imports/1, module_declarations/1, declaration/2, declaration_doc/1, declaration_type_def/1, module_header_records/1]). -export_type([module_/0, declaration/0, type_def/0, field/0, variant/0, response_header_record/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. -opaque module_() :: {module, binary(), list(binary()), list(declaration()), list(response_header_record())}. -opaque declaration() :: {declaration, gleam@option:option(binary()), type_def()}. -type type_def() :: {type_alias, binary(), binary()} | {record_type, binary(), list(field())} | {union_type, binary(), list(variant())} | {enum_type, binary(), list(binary())}. -type field() :: {field, binary(), binary()}. -type variant() :: {variant_with_type, binary(), binary()} | {variant_empty, binary()}. -type response_header_record() :: {response_header_record, binary(), list(field())}. -file("src/oaspec/codegen/ir.gleam", 22). ?DOC(" Construct a `Module` from its three component pieces.\n"). -spec module(binary(), list(binary()), list(declaration())) -> module_(). module(Header, Imports, Declarations) -> {module, Header, Imports, Declarations, []}. -file("src/oaspec/codegen/ir.gleam", 31). ?DOC(" Construct a `Module` with header records.\n"). -spec module_with_header_records( binary(), list(binary()), list(declaration()), list(response_header_record()) ) -> module_(). module_with_header_records(Header, Imports, Declarations, Header_records) -> {module, Header, Imports, Declarations, Header_records}. -file("src/oaspec/codegen/ir.gleam", 41). ?DOC(" Module imports, in the order they should be rendered.\n"). -spec module_imports(module_()) -> list(binary()). module_imports(M) -> erlang:element(3, M). -file("src/oaspec/codegen/ir.gleam", 46). ?DOC(" Top-level declarations inside the module.\n"). -spec module_declarations(module_()) -> list(declaration()). module_declarations(M) -> erlang:element(4, M). -file("src/oaspec/codegen/ir.gleam", 59). ?DOC(" Construct a `Declaration` from its optional doc and type definition.\n"). -spec declaration(gleam@option:option(binary()), type_def()) -> declaration(). declaration(Doc, Type_def) -> {declaration, Doc, Type_def}. -file("src/oaspec/codegen/ir.gleam", 67). ?DOC(" Optional doc comment attached to this declaration.\n"). -spec declaration_doc(declaration()) -> gleam@option:option(binary()). declaration_doc(D) -> erlang:element(2, D). -file("src/oaspec/codegen/ir.gleam", 72). ?DOC(" The type definition carried by this declaration.\n"). -spec declaration_type_def(declaration()) -> type_def(). declaration_type_def(D) -> erlang:element(3, D). -file("src/oaspec/codegen/ir.gleam", 107). ?DOC(" Response header records inside the module.\n"). -spec module_header_records(module_()) -> list(response_header_record()). module_header_records(M) -> erlang:element(5, M).