glixir/genserver
Type-safe GenServer interop for Gleam
This module provides a safe interface to Elixir GenServers from Gleam.
Types
Errors that can occur in GenServer operations
pub type GenServerError {
StartError(reason: String)
CallTimeout
CallError(reason: String)
CastError(reason: String)
NotFound(name: String)
}
Constructors
-
StartError(reason: String)
-
CallTimeout
-
CallError(reason: String)
-
CastError(reason: String)
-
NotFound(name: String)
Values
pub fn call(
server: GenServer,
request: a,
) -> Result(b, GenServerError)
Send a synchronous call to the GenServer (5s timeout)
pub fn call_named(
name: String,
request: a,
) -> Result(b, GenServerError)
Call a named GenServer
pub fn call_timeout(
server: GenServer,
request: a,
timeout: Int,
) -> Result(b, GenServerError)
Send a synchronous call with custom timeout
pub fn cast(
server: GenServer,
request: a,
) -> Result(Nil, GenServerError)
Send an asynchronous cast to the GenServer
pub fn cast_named(
name: String,
request: a,
) -> Result(Nil, GenServerError)
Cast to a named GenServer
pub fn lookup_name(
name: String,
) -> Result(GenServer, GenServerError)
Look up a GenServer by registered name
pub fn start_link(
module: String,
args: a,
) -> Result(GenServer, GenServerError)
Start a GenServer using Module.start_link/1
pub fn start_link_named(
module: String,
name: String,
args: a,
) -> Result(GenServer, GenServerError)
Start a GenServer with a registered name