rx/effect

Types

A runtime-agnostic asynchronous computation.

start receives a resolver and returns a cancellation function. The effect implementation may use a BEAM process, timer, socket, FFI callback, or any other mechanism. rx-gleam does not spawn work for the effect.

pub opaque type Effect(value, error)

Values

pub fn fail(reason: error) -> Effect(value, error)
pub fn map(
  effect: Effect(a, error),
  transform: fn(a) -> b,
) -> Effect(b, error)
pub fn new(
  start: fn(fn(Result(value, error)) -> Nil) -> fn() -> Nil,
) -> Effect(value, error)
pub fn pure(value: value) -> Effect(value, error)
pub fn run(
  effect: Effect(value, error),
  resolve: fn(Result(value, error)) -> Nil,
) -> fn() -> Nil
pub fn to_observable(
  effect: Effect(value, error),
) -> rx.Observable(value, error)

Convert one effect result into an Observable.

The effect’s cancellation function becomes the Observable subscription teardown. Multiple or late resolver calls are still governed by the same runtime protocol as every other Observable producer.

Search Document