Current section
Files
Jump to
Current section
Files
src/internal@testcontainers_ffi.erl
-module(internal@testcontainers_ffi).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/testcontainers_ffi.gleam").
-export([start_link/0, start/1, stop_container/1, build_container/1, after_start/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.
?MODULEDOC(" FFI to Elixir.Testcontainers top-level module functions.\n").
-file("src/internal/testcontainers_ffi.gleam", 11).
?DOC(
" Start the Testcontainers GenServer.\n"
"\n"
" Calls `Testcontainers.start_link/0` which returns\n"
" `{:ok, pid}` or `{:error, reason}`.\n"
).
-spec start_link() -> {ok, gleam@dynamic:dynamic_()} |
{error, gleam@dynamic:dynamic_()}.
start_link() ->
'Elixir.Testcontainers':start_link().
-file("src/internal/testcontainers_ffi.gleam", 18).
?DOC(
" Start a container and wait until it is ready.\n"
"\n"
" Uses an Erlang wrapper that normalizes 3-element error tuples\n"
" from wait strategies into standard 2-element `{:error, reason}`.\n"
).
-spec start(testcontainers_gleam@container:container()) -> {ok,
testcontainers_gleam@container:container()} |
{error, gleam@dynamic:dynamic_()}.
start(Container) ->
testcontainers_gleam_ffi:start_container(Container).
-file("src/internal/testcontainers_ffi.gleam", 26).
?DOC(
" Stop a running container by ID.\n"
"\n"
" Calls `Testcontainers.stop_container/1` which returns\n"
" `:ok` or `{:error, reason}`. Typed as Dynamic because `:ok`\n"
" is a bare atom, not a `{:ok, value}` tuple.\n"
).
-spec stop_container(binary()) -> gleam@dynamic:dynamic_().
stop_container(Container_id) ->
'Elixir.Testcontainers':stop_container(Container_id).
-file("src/internal/testcontainers_ffi.gleam", 33).
?DOC(
" Build a Container from any ContainerBuilder config struct.\n"
"\n"
" Dispatches through Elixir's `ContainerBuilder` protocol to convert\n"
" a builder (e.g. `%RedisContainer{}`) into a low-level `%Container{}`.\n"
).
-spec build_container(any()) -> testcontainers_gleam@container:container().
build_container(Builder) ->
testcontainers_gleam_ffi:build_container(Builder).
-file("src/internal/testcontainers_ffi.gleam", 40).
?DOC(
" Call after_start for builders that need post-start hooks (e.g. Kafka).\n"
"\n"
" Extracts the Docker HTTP connection from the Testcontainers GenServer\n"
" state and calls `ContainerBuilder.after_start/3`.\n"
).
-spec after_start(any(), testcontainers_gleam@container:container()) -> {ok,
nil} |
{error, gleam@dynamic:dynamic_()}.
after_start(Builder, Container) ->
testcontainers_gleam_ffi:after_start(Builder, Container).