-module(testcontainer@stack). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/testcontainer/stack.gleam"). -export([new/2, name/1, run/2]). -export_type([stack/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. -opaque stack(GXO) :: {stack, binary(), fun((testcontainer@network:network()) -> {ok, GXO} | {error, testcontainer@error:error()})}. -file("src/testcontainer/stack.gleam", 44). ?DOC( " Builds a `Stack` with the given network name and a function that, given\n" " the running `Network`, returns the typed output the test will consume.\n" "\n" " testcontainer.stack(\"app-test-net\", fn(net) { Ok(net) })\n" ). -spec new( binary(), fun((testcontainer@network:network()) -> {ok, GXP} | {error, testcontainer@error:error()}) ) -> stack(GXP). new(Network_name, Run) -> {stack, Network_name, Run}. -file("src/testcontainer/stack.gleam", 52). ?DOC(false). -spec name(stack(any())) -> binary(). name(S) -> erlang:element(2, S). -file("src/testcontainer/stack.gleam", 57). ?DOC(false). -spec run(stack(GXV), testcontainer@network:network()) -> {ok, GXV} | {error, testcontainer@error:error()}. run(S, Net) -> (erlang:element(3, S))(Net).