Current section
Files
Jump to
Current section
Files
src/carotte.erl
-module(carotte).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/carotte.gleam").
-export([default_client/0, with_username/2, with_password/2, with_virtual_host/2, with_host/2, with_port/2, with_channel_max/2, with_frame_max/2, with_heartbeat/2, with_connection_timeout/2, start/1, close/1]).
-export_type([carotte_client/0, carotte_error/0, builder/0]).
-type carotte_client() :: {carotte_client, gleam@erlang@process:pid_()}.
-type carotte_error() :: blocked | closed.
-opaque builder() :: {builder,
binary(),
binary(),
binary(),
binary(),
integer(),
integer(),
integer(),
integer(),
integer()}.
-file("src/carotte.gleam", 26).
-spec default_client() -> builder().
default_client() ->
{builder,
<<"guest"/utf8>>,
<<"guest"/utf8>>,
<<"/"/utf8>>,
<<"localhost"/utf8>>,
5672,
2074,
0,
10,
60000}.
-file("src/carotte.gleam", 30).
-spec with_username(builder(), binary()) -> builder().
with_username(Builder, Username) ->
{builder,
Username,
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 34).
-spec with_password(builder(), binary()) -> builder().
with_password(Builder, Password) ->
{builder,
erlang:element(2, Builder),
Password,
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 38).
-spec with_virtual_host(builder(), binary()) -> builder().
with_virtual_host(Builder, Virtual_host) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
Virtual_host,
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 42).
-spec with_host(builder(), binary()) -> builder().
with_host(Builder, Host) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
Host,
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 46).
-spec with_port(builder(), integer()) -> builder().
with_port(Builder, Port) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
Port,
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 50).
-spec with_channel_max(builder(), integer()) -> builder().
with_channel_max(Builder, Channel_max) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
Channel_max,
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 54).
-spec with_frame_max(builder(), integer()) -> builder().
with_frame_max(Builder, Frame_max) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
Frame_max,
erlang:element(9, Builder),
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 58).
-spec with_heartbeat(builder(), integer()) -> builder().
with_heartbeat(Builder, Heartbeat) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
Heartbeat,
erlang:element(10, Builder)}.
-file("src/carotte.gleam", 62).
-spec with_connection_timeout(builder(), integer()) -> builder().
with_connection_timeout(Builder, Connection_timeout) ->
{builder,
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
Connection_timeout}.
-file("src/carotte.gleam", 69).
-spec start(builder()) -> {ok, carotte_client()} | {error, carotte_error()}.
start(Builder) ->
carotte_ffi:start(
erlang:element(2, Builder),
erlang:element(3, Builder),
erlang:element(4, Builder),
erlang:element(5, Builder),
erlang:element(6, Builder),
erlang:element(7, Builder),
erlang:element(8, Builder),
erlang:element(9, Builder),
erlang:element(10, Builder)
).
-file("src/carotte.gleam", 96).
-spec close(carotte_client()) -> {ok, nil} | {error, carotte_error()}.
close(Client) ->
carotte_ffi:close(Client).