-module(caffeine_lang@codegen@generator_utils). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/caffeine_lang/codegen/generator_utils.gleam"). -export([render_terraform_config/4, build_source_comment/1, render_resource_to_string/1, resolution_error/2]). -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/codegen/generator_utils.gleam", 20). ?DOC(false). -spec render_terraform_config( list(terra_madre@terraform:resource()), terra_madre@terraform:terraform_settings(), list(terra_madre@terraform:provider()), list(terra_madre@terraform:variable()) ) -> binary(). render_terraform_config(Resources, Settings, Providers, Variables) -> Config = {config, {some, Settings}, Providers, Resources, [], Variables, [], [], []}, terra_madre@render:render_config(Config). -file("src/caffeine_lang/codegen/generator_utils.gleam", 42). ?DOC(false). -spec build_source_comment( caffeine_lang@linker@ir:intermediate_representation_meta_data() ) -> binary(). build_source_comment(Metadata) -> <<<<<<<<<<<<<<<<<<<<"# Caffeine: "/utf8, (erlang:element( 2, erlang:element(3, Metadata) ))/binary>>/binary, "."/utf8>>/binary, (erlang:element( 2, erlang:element(6, Metadata) ))/binary>>/binary, "."/utf8>>/binary, (erlang:element(2, erlang:element(4, Metadata)))/binary>>/binary, "."/utf8>>/binary, (erlang:element(2, erlang:element(2, Metadata)))/binary>>/binary, " (measurement: "/utf8>>/binary, (erlang:element(2, erlang:element(5, Metadata)))/binary>>/binary, ")"/utf8>>. -file("src/caffeine_lang/codegen/generator_utils.gleam", 60). ?DOC(false). -spec render_resource_to_string(terra_madre@terraform:resource()) -> binary(). render_resource_to_string(Resource) -> Config = {config, none, [], [Resource], [], [], [], [], []}, _pipe = terra_madre@render:render_config(Config), codegen_ffi:drop_end_codeunits(_pipe, 1). -file("src/caffeine_lang/codegen/generator_utils.gleam", 78). ?DOC(false). -spec resolution_error(binary(), binary()) -> caffeine_lang@errors:compilation_error(). resolution_error(Vendor_name, Msg) -> caffeine_lang@errors:generator_terraform_resolution_error(Vendor_name, Msg).