Packages

Typed distributed messaging for Gleam on the BEAM.

Retired package: Deprecated - The project needs to be redesigned around a much smaller and clearer core.

Current section

Files

Jump to
distribute src distribute@actor.erl
Raw

src/distribute@actor.erl

-module(distribute@actor).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/distribute/actor.gleam").
-export([start/3, start_global/3]).
-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/distribute/actor.gleam", 10).
?DOC(
" Start an actor that receives and decodes typed messages.\n"
"\n"
" This is a wrapper around `receiver.start_typed_receiver`.\n"
" The returned Subject accepts `BitArray` messages.\n"
).
-spec start(
HCM,
fun((bitstring()) -> {ok, HCN} | {error, distribute@codec:decode_error()}),
fun((HCN, HCM) -> distribute@receiver:next(HCM))
) -> {ok, gleam@erlang@process:subject(bitstring())} |
{error, gleam@otp@actor:start_error()}.
start(Initial_state, Decoder, Handler) ->
distribute@receiver:start_typed_receiver(Initial_state, Decoder, Handler).
-file("src/distribute/actor.gleam", 22).
?DOC(
" Start a global actor that can be registered with `registry.register_typed`.\n"
"\n"
" This is a wrapper around `receiver.start_global_receiver`.\n"
" The returned Subject has a `Nil` tag and accepts `BitArray` messages.\n"
).
-spec start_global(
HCT,
fun((bitstring()) -> {ok, HCU} | {error, distribute@codec:decode_error()}),
fun((HCU, HCT) -> distribute@receiver:next(HCT))
) -> gleam@erlang@process:subject(bitstring()).
start_global(Initial_state, Decoder, Handler) ->
distribute@receiver:start_global_receiver(Initial_state, Decoder, Handler).