Skip to main content

src/yum@yaml@document.erl

-module(yum@yaml@document).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yum/yaml/document.gleam").
-export([new/2, root/1, directives/1]).
-export_type([document/0, directive/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).

-opaque document() :: {document, yum@yaml@node:node_(), list(directive())}.

-type directive() :: {directive, binary(), list(binary()), yum@yaml@node:span()}.

-file("src/yum/yaml/document.gleam", 22).
?DOC(false).
-spec new(yum@yaml@node:node_(), list(directive())) -> document().
new(Root, Directives) ->
    {document, Root, Directives}.

-file("src/yum/yaml/document.gleam", 26).
?DOC(false).
-spec root(document()) -> yum@yaml@node:node_().
root(Document) ->
    erlang:element(2, Document).

-file("src/yum/yaml/document.gleam", 30).
?DOC(false).
-spec directives(document()) -> list(directive()).
directives(Document) ->
    erlang:element(3, Document).