-module(caffeine_lang@phase_1@parser@specification@unresolved_services_specification). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/caffeine_lang/phase_1/parser/specification/unresolved_services_specification.gleam"). -export([parse_unresolved_services_specification/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -file("src/caffeine_lang/phase_1/parser/specification/unresolved_services_specification.gleam", 22). ?DOC(" Parses a single unresolved service.\n"). -spec parse_service(glaml:node_(), gleam@dict:dict(binary(), binary())) -> {ok, caffeine_lang@types@unresolved@unresolved_service:service()} | {error, binary()}. parse_service(Service, _) -> gleam@result:'try'( caffeine_lang@phase_1@parser@utils@glaml_helpers:extract_string_list_from_node( Service, <<"sli_types"/utf8>> ), fun(Sli_types) -> gleam@result:'try'( caffeine_lang@phase_1@parser@utils@glaml_helpers:extract_string_from_node( Service, <<"name"/utf8>> ), fun(Name) -> {ok, {service, Name, Sli_types}} end ) end ). -file("src/caffeine_lang/phase_1/parser/specification/unresolved_services_specification.gleam", 9). ?DOC(" Given a specification file, returns a list of unresolved service specifications.\n"). -spec parse_unresolved_services_specification(binary()) -> {ok, list(caffeine_lang@types@unresolved@unresolved_service:service())} | {error, binary()}. parse_unresolved_services_specification(File_path) -> caffeine_lang@phase_1@parser@utils@glaml_helpers:parse_specification( File_path, maps:new(), fun parse_service/2, <<"services"/utf8>> ).