RustQ.Rustler.Atom (rustq v0.11.1)

Copy Markdown View Source

Generates Rustler atom declarations, decoders, dispatchers, and cached atom helpers.

Decoder and dispatch helpers prefer RustQ AST. Options such as :on, :cases, and :unknown may accept explicit Rust expression strings for advanced caller escape hatches; prefer AST expressions when composing generated code.

Summary

Functions

Builds OnceLock<Atom> declarations and cached atom accessors.

Builds a rustler::atoms! declaration, optionally wrapped in a module.

Builds a function that decodes Rustler atoms into Rust values.

Builds a function that dispatches an expression by atom value.

Functions

cached(atoms, opts \\ [])

@spec cached(
  [atom() | String.t() | {atom() | String.t(), String.t()}],
  keyword()
) :: [RustQ.Rust.AST.item()]

Builds OnceLock<Atom> declarations and cached atom accessors.

declaration(atoms, opts \\ [])

@spec declaration(
  [atom() | String.t() | {atom() | String.t(), String.t()}],
  keyword()
) :: RustQ.Rust.AST.MacroItemCall.t() | RustQ.Rust.AST.Module.t()

Builds a rustler::atoms! declaration, optionally wrapped in a module.

decoder(name, opts)

@spec decoder(
  atom() | String.t(),
  keyword()
) :: RustQ.Rust.AST.Function.t()

Builds a function that decodes Rustler atoms into Rust values.

dispatch(name, opts)

@spec dispatch(
  atom() | String.t(),
  keyword()
) :: RustQ.Rust.AST.Function.t()

Builds a function that dispatches an expression by atom value.