Packages
gleam_erlang
0.34.0
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-rc1
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.18.0-rc1
retired
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Types and functions for programs running on Erlang!
Current section
Files
Jump to
Current section
Files
src/gleam@erlang@node.erl
-module(gleam@erlang@node).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([self/0, visible/0, connect/1, send/3, to_atom/1]).
-export_type([node_/0, do_not_leak/0, connect_error/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type node_() :: any().
-type do_not_leak() :: any().
-type connect_error() :: failed_to_connect | local_node_is_not_alive.
-file("/Users/louis/src/gleam/erlang/src/gleam/erlang/node.gleam", 10).
?DOC(" Return the current node.\n").
-spec self() -> node_().
self() ->
erlang:node().
-file("/Users/louis/src/gleam/erlang/src/gleam/erlang/node.gleam", 23).
?DOC(
" Return a list of all visible nodes in the cluster, not including the current\n"
" node.\n"
"\n"
" The current node can be included by calling `self()` and prepending the\n"
" result.\n"
"\n"
" ```gleam\n"
" let all_nodes = [node.self(), ..node.visible()]\n"
" ```\n"
).
-spec visible() -> list(node_()).
visible() ->
erlang:nodes().
-file("/Users/louis/src/gleam/erlang/src/gleam/erlang/node.gleam", 44).
?DOC(
" Establish a connection to a node, so the nodes can send messages to each\n"
" other and any other connected nodes.\n"
"\n"
" Returns `Error(FailedToConnect)` if the node is not reachable.\n"
"\n"
" Returns `Error(LocalNodeIsNotAlive)` if the local node is not alive, meaning\n"
" it is not running in distributed mode.\n"
).
-spec connect(gleam@erlang@atom:atom_()) -> {ok, node_()} |
{error, connect_error()}.
connect(Node) ->
gleam_erlang_ffi:connect_node(Node).
-file("/Users/louis/src/gleam/erlang/src/gleam/erlang/node.gleam", 51).
?DOC(
" Send a message to a named process on a given node.\n"
"\n"
" These messages are untyped, like regular Erlang messages.\n"
).
-spec send(node_(), gleam@erlang@atom:atom_(), any()) -> nil.
send(Node, Name, Message) ->
erlang:send({Name, Node}, Message),
nil.
-file("/Users/louis/src/gleam/erlang/src/gleam/erlang/node.gleam", 62).
?DOC(" Convert a node to the atom of its name.\n").
-spec to_atom(node_()) -> gleam@erlang@atom:atom_().
to_atom(Node) ->
gleam_erlang_ffi:identity(Node).